hwmon: (corsair-cpro) Create debugfs entries after hwmon registration
- 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.12.111, 6.18.53, 7.2.7
- 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: hwmon: (corsair-cpro) Create debugfs entries after hwmon registration ccp_debugfs_init() registers debugfs files whose private data is the devm allocated ccp. It runs before hwmon_device_register_with_info(), so when that registration fails, ccp_probe() returns with the files still in place. The HID core then frees ccp, and ccp_remove() is not called for a failed probe, so nothing removes them later either. Reading one of the files dereferences the freed pointer. Create the debugfs entries only after the hwmon device has been registered, so no failing path can leave them behind. The two version queries stay where they are. They send USB commands without holding ccp->mutex, which is only safe as long as nothing else can call send_usb_cmd(); once the hwmon device is registered its callbacks can do so concurrently. Only the debugfs creation moves, and it is told which queries succeeded.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 5997eb60f896830126bc1783465b678b110e2fdd · fixed in 6c5d333216a937044acd3336e9ec7e30ff2eaee4; From 5997eb60f896830126bc1783465b678b110e2fdd · fixed in a58a966a440071bb877ef62535d1016952f83101; From 5997eb60f896830126bc1783465b678b110e2fdd · fixed in fdfe17cb865715aad30328678344eb79889207ab; From 5997eb60f896830126bc1783465b678b110e2fdd · fixed in 508baf1713f32f287bfb4f85d759403ec8ba35a3
- Linux Linux
6.11
- KernelLinux
From 6.11.0 · fixed in 6.12.111; From 6.13.0 · fixed in 6.18.53; From 6.19.0 · fixed in 7.2.7