spi: use generic driver_override infrastructure
- 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.80, 6.18.21, 6.19.11
- 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: spi: use generic driver_override infrastructure When a driver is probed through __driver_attach(), the bus' match() callback is called without the device lock held, thus accessing the driver_override field without a lock, which can cause a UAF. Fix this by using the driver-core driver_override infrastructure taking care of proper locking internally. Note that calling match() from __driver_attach() without the device lock held is intentional. [1] Also note that we do not enable the driver_override feature of struct bus_type, as SPI - in contrast to most other buses - passes "" to sysfs_emit() when the driver_override pointer is NULL. Thus, printing "\n" instead of "(null)\n".
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5039563e7c25eccd7fec1de6706011009d1c5665 · fixed in 6e8eb467bed6aa1a563dba8f366c9fd76ba0004e; From 5039563e7c25eccd7fec1de6706011009d1c5665 · fixed in eedf220442d13b6d97294e5b0ac8a2c38ee1a1a0; From 5039563e7c25eccd7fec1de6706011009d1c5665 · fixed in c73a58661a760373d08a6883af4f0bb5cc991a67; From 5039563e7c25eccd7fec1de6706011009d1c5665 · fixed in e0ae367a2de06c49aa1de6ec9b1ab6860bbb2cf0; From 5039563e7c25eccd7fec1de6706011009d1c5665 · fixed in cc34d77dd48708d810c12bfd6f5bf03304f6c824
- Linux Linux
4.20
- KernelLinux
From 4.20.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.80; From 6.13.0 · fixed in 6.18.21; From 6.19.0 · fixed in 6.19.11