HID: nintendo: stop device IO before hid_hw_stop on probe failure
- 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.1.187, 6.6.156, 6.12.106, 6.18.47, 7.1.11, and 1 more
- 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: nintendo: stop device IO before hid_hw_stop on probe failure nintendo_hid_probe() calls hid_device_io_start() before joycon_init() and joycon_leds_create(). If either fails, the error path jumps to err_close which calls hid_hw_close()/hid_hw_stop() without first calling hid_device_io_stop(). hid_hw_stop() does not stop device IO, so hid_input_report() may still run and access driver data that is being torn down, resulting in a use-after-free. Add an err_io_stop label that calls hid_device_io_stop() before hid_hw_close(), and point the two post-io_start error paths at it.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 2af16c1f846bd60240745bbd3afa13d5f040c61a · fixed in c2f3d51c7f5222f5b51e0c90f02258d82e1b44dd; From 2af16c1f846bd60240745bbd3afa13d5f040c61a · fixed in c023443f0e6cfd257846b6515c93c1ea08026593; From 2af16c1f846bd60240745bbd3afa13d5f040c61a · fixed in 03a84f9f88b42cd49752ec0259922b67e4b88598; From 2af16c1f846bd60240745bbd3afa13d5f040c61a · fixed in 5efcd7bbfaaec67d137c99aa0940fa34375db27f; From 2af16c1f846bd60240745bbd3afa13d5f040c61a · fixed in 13a3edf96568a0b7aacadea07c2adec53ac8f630; From 2af16c1f846bd60240745bbd3afa13d5f040c61a · fixed in 2e0d98dc8a6dea5fc2b72bf66e0dcbd5488644b4; From 2af16c1f846bd60240745bbd3afa13d5f040c61a · fixed in 1f74d3bff6fe04a64e02ab3661d2e0d554565aa6
- Linux Linux
5.16
- KernelLinux
From 5.16.0 · fixed in 6.1.187; From 6.2.0 · fixed in 6.6.156; From 6.7.0 · fixed in 6.12.106; From 6.13.0 · fixed in 6.18.47; From 6.19.0 · fixed in 7.1.11; From 7.2.0 · fixed in 7.2.1
References 7
git.kernel.org
- stable/c/c2f3d51c7f5222f5b51e0c90f02258d82e1b44dd
- stable/c/c023443f0e6cfd257846b6515c93c1ea08026593
- stable/c/03a84f9f88b42cd49752ec0259922b67e4b88598
- stable/c/5efcd7bbfaaec67d137c99aa0940fa34375db27f
- stable/c/13a3edf96568a0b7aacadea07c2adec53ac8f630
- stable/c/2e0d98dc8a6dea5fc2b72bf66e0dcbd5488644b4
- stable/c/1f74d3bff6fe04a64e02ab3661d2e0d554565aa6