HID: alps: fix use-after-free on input2 registration 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 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 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: alps: fix use-after-free on input2 registration failure alps_input_configured() stores data->input2 before calling input_register_device(). If registration fails, input_free_device() frees the input device but data->input2 still points to the freed memory. alps_input_configured() calls hid_hw_open() before allocating input2, so URBs are already active and raw_event can fire during the failure window. A U1_SP_ABSOLUTE_REPORT_ID report arriving then causes u1_raw_event() to dereference the freed data->input2 -> use-after-free. Fix by only storing input2 into drvdata after successful registration and adding a NULL guard in the raw_event path.
Timeline
- CVE published
- Record last updated
Affected versions
- Linux Linux
From 2562756dde550901c224e3805102bdfc17e7d13a · fixed in 64f824dccfd316fd3db8ea1cc4e8a76ad6a02740; From 2562756dde550901c224e3805102bdfc17e7d13a · fixed in 2e55d76e6e8a756f6d87c241de975599f82b02fa; From 2562756dde550901c224e3805102bdfc17e7d13a · fixed in ef8ca5bb4c8b9696f38b1bebce1c851baa02b77b; From 2562756dde550901c224e3805102bdfc17e7d13a · fixed in 5a8ad63158165bacd6a1d7420e0fe5364c913b06; From 2562756dde550901c224e3805102bdfc17e7d13a · fixed in 47e5e177e9e4e10da6f2759d5ce8d049e33efdc4; From 2562756dde550901c224e3805102bdfc17e7d13a · fixed in 925da1d2a24787f24872de13a4680437c54de179; From 2562756dde550901c224e3805102bdfc17e7d13a · fixed in 443f6b93442b10b972a16f57ceaaea75b77892b6; From 2562756dde550901c224e3805102bdfc17e7d13a · fixed in d3aba3442798ce4a4c8ce3104d7b286d61e605f9
- Linux Linux
4.8
- KernelLinux
From 4.8.0 · fixed in 5.10.271; From 5.11.0 · fixed in 5.15.222; From 5.16.0 · fixed in 6.1.189; From 6.2.0 · fixed in 6.6.158; From 6.7.0 · fixed in 6.12.112; From 6.13.0 · fixed in 6.18.55; From 6.19.0 · fixed in 7.2.9
References 8
git.kernel.org
- stable/c/64f824dccfd316fd3db8ea1cc4e8a76ad6a02740
- stable/c/2e55d76e6e8a756f6d87c241de975599f82b02fa
- stable/c/ef8ca5bb4c8b9696f38b1bebce1c851baa02b77b
- stable/c/5a8ad63158165bacd6a1d7420e0fe5364c913b06
- stable/c/47e5e177e9e4e10da6f2759d5ce8d049e33efdc4
- stable/c/925da1d2a24787f24872de13a4680437c54de179
- stable/c/443f6b93442b10b972a16f57ceaaea75b77892b6
- stable/c/d3aba3442798ce4a4c8ce3104d7b286d61e605f9