CVE-2022-50246: usb: typec: tcpci: fix of node refcount leak in tcpci_register_port()
In the Linux kernel, the following vulnerability has been resolved:
usb: typec: tcpci: fix of node refcount leak in tcpci_register_port()
I got the following report while doing device(mt6370-tcpc) load
test with CONFIG_OF_UNITTEST and CONFIG_OF_DYNAMIC enabled:
OF: ERROR: memory leak, expected refcount 1 instead of 2,
of_node_get()/of_node_put() unbalanced - destroy cset entry:
attach overlay node /i2c/pmic@34/tcpc/connector
The 'fwnode' set in tcpci_parse_config() which is called
in tcpci_register_port(), its node refcount is increased
in device_get_named_child_node(). It needs be put while
exiting, so call fwnode_handle_put() in the error path of
tcpci_register_port() and in tcpci_unregister_port() to
avoid leak.
Security readout for executives and security teams
Plain-English summary
CVE-2022-50246 is a Linux kernel resource-management bug in USB Type-C TCPM/TCPCI handling. Under specific device-tree and driver paths, the kernel can keep an extra firmware-node reference instead of releasing it. The public record describes a memory leak, not privilege escalation, code execution, or data theft.
Executive priority
Handle through normal kernel maintenance unless the affected driver is heavily used on critical embedded or laptop fleets. There is no sourced evidence of active exploitation or severe security impact, but resource leaks in kernel code should still be removed during planned patch cycles.
Technical view
The flaw is an unbalanced fwnode reference in tcpci_register_port(). device_get_named_child_node() increments the node reference in tcpci_parse_config(), but cleanup was missing on registration error paths and tcpci_unregister_port(). Stable fixes add fwnode_handle_put() in those paths.
Likely exposure
Exposure is likely limited to Linux systems using the affected USB Type-C TCPM/TCPCI kernel code, especially devices with relevant Type-C controller hardware and device-tree firmware nodes. The source lists Linux kernel version lines including 4.19, 5.4.229, 5.10.163, 5.15.86, 6.0.16, 6.1.2, and 6.2 as affected data.
Exploitation context
The source bundle does not show active exploitation, KEV listing, exploit availability, or a remote attack path. The issue was reported during device load testing with CONFIG_OF_UNITTEST and CONFIG_OF_DYNAMIC enabled. Treat exploitation evidence as absent, not disproven.
Researcher notes
The public evidence supports a kernel memory/reference leak only. Severity, CVSS, CWE, exploitability, and precise distribution package status are not provided in the bundle. Validation should focus on code presence, backport status, and whether the relevant Type-C TCPM/TCPCI path is reachable on managed hardware.
Mitigation direction
Update to a Linux kernel containing the referenced stable fixes.
Confirm distribution or device-vendor kernels have backported the tcpci fwnode cleanup fix.
Prioritize systems with USB Type-C TCPM/TCPCI controller support enabled.
Monitor vendor advisories for exact fixed package versions.
Validation and detection
Inventory Linux kernel versions and vendor patch levels across exposed device fleets.
Check whether affected systems load TCPM/TCPCI Type-C controller drivers.
Verify kernel source or changelog includes one referenced stable commit.
Review test or kernel logs for device-tree node refcount leak messages.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2022-50246 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
0CVSS vectors
3Timeline events
0ADP providers
7Source links
Vulnerability timeline
Timeline events are normalized from CVE metadata, CNA source timelines, ADP timelines, and KEV metadata when present.
CVE reservedCVE Program
The CVE ID was reserved by the assigning CNA.
CVE publishedCVE Program
The CVE record was published.
Sep 15, 2025, 14:02 UTC (UTC+00:00)
CVE updatedCVE Program
The CVE record metadata indicates this as the latest update time.