usb: typec: tipd: fix uninitialized typec_partner_desc in tps6598x_connect()
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 6.6.160, 6.12.113, 6.18.56, 7.2.10
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
Summary
In the Linux kernel, the following vulnerability has been resolved: usb: typec: tipd: fix uninitialized typec_partner_desc in tps6598x_connect() tps6598x_connect() passes a stack-allocated typec_partner_desc to typec_register_partner() after initializing only usb_pd, accessory and identity. typec_register_partner() copies attach and deattach from the descriptor into the partner. With those fields left unset, garbage function pointers may be stored and later invoked from typec_partner_link_device() when a USB device is linked to the port. Uninitialized pd_revision and usb_capability similarly leak stack data through partner sysfs. Zero-initialize the descriptor so optional callbacks remain NULL and the remaining fields are zero.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 0a4c005bd1715d8b32a368ed5516a6ee7e603d18 · fixed in a39d53f70e637ff3970046c32106a0e64fca62cd; From 0a4c005bd1715d8b32a368ed5516a6ee7e603d18 · fixed in 4b6823ce0e548491cb9663303cba28e18d351096; From 0a4c005bd1715d8b32a368ed5516a6ee7e603d18 · fixed in 282be6ae8be791762740107c79cecf5121f66063; From 0a4c005bd1715d8b32a368ed5516a6ee7e603d18 · fixed in dac0c073c6ad5f1bbb5e9fea9023fc1b4dab5e14; From 0a4c005bd1715d8b32a368ed5516a6ee7e603d18 · fixed in c4b27b3605788bbf9e4251f3cd4ab94645ab036f
- Linux Linux
4.15
- KernelLinux
From 4.15.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.113; From 6.13.0 · fixed in 6.18.56; From 6.19.0 · fixed in 7.2.10