i3c: master: Fix use-after-free of master->this
- 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.112, 6.18.52, 7.2.6
- 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: i3c: master: Fix use-after-free of master->this sysfs attribute callbacks for the master controller device dereference master->this. However, master->this is freed in i3c_master_detach_free_devs() before the master device itself is released. As a result, sysfs accesses can dereference a freed master->this pointer, leading to a use-after-free. Keep master->this alive until i3c_masterdev_release(), which is called after the master device and its sysfs state are being torn down. Do not free master->this as part of the normal device detach path. On the error path in i3c_master_set_info(), reset master->this and bus.cur_master to NULL before freeing the allocated device.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 · fixed in 027679d613ea73b8a00831369ec34eea804ce1bd; From 3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 · fixed in 23a1c4288a60e253a05a882bd8928ed61beb4a48; From 3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 · fixed in 4f3145db05fede36b35f8249b8acde5bd5d54864; From 3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 · fixed in 50034d8d0f797c3a7a599f750a7d3e792e80dea5; From 3a379bbcea0af6280e1ca0d1edfcf4e68cde6ee0 · fixed in feb0ed76601f3c2f91f08688c5a7d8b9d382f720
- Linux Linux
5.0
- KernelLinux
From 5.0.0 · fixed in 6.6.160; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.52; From 6.19.0 · fixed in 7.2.6