HID: mcp2221: stop device IO before hid_hw_stop
- 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.157, 6.12.109, 6.18.50, 7.2.4, 7.3
- 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: HID: mcp2221: stop device IO before hid_hw_stop Quiesce device IO at the start of the devm cleanup callback mcp2221_hid_unregister() so that incoming HID reports cannot race with hardware teardown during probe failure or device removal, addressing a potential use-after-free. Guard the call to hid_device_io_stop() with io_started. On normal removal hid_device_remove() has already cleared io_started before the devres group is released, so an unconditional call would otherwise hit the !io_started path and emit a spurious "io already stopped" warning on every removal. The guard preserves the probe-failure balancing, where io_started is still set after hid_device_io_start(), while staying silent on the normal removal path.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From d4b50ac06ea6e47bdd2b04e97d1090c673c80645 · fixed in 85d963499f1feeea287c0a37c3eac3fc1898eca9; From 73ce9f1f2741a38f5d27393e627702ae2c46e6f2 · fixed in 0ae90a19e6b5a8557d25d95facb7e01c9c07af38; From 73ce9f1f2741a38f5d27393e627702ae2c46e6f2 · fixed in c99ba6c234d4d537c317336376b78c088174034a; From 73ce9f1f2741a38f5d27393e627702ae2c46e6f2 · fixed in 2eda1513f573945c1e3a0090341f3d28740463b1; From 73ce9f1f2741a38f5d27393e627702ae2c46e6f2 · fixed in dca151633c0fde90935311c60e7cfc064aa56134; From 6.6.8 · fixed in 6.6.157
- Linux Linux
6.7
- KernelLinux
From 6.6.8 · fixed in 6.6.157; fixed in 6.12.109; fixed in 6.18.50; fixed in 7.2.4; fixed in 7.3