{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-98501","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-09-25T10:25:14.353Z","datePublished":"2026-10-18T15:16:46.205Z","dateUpdated":"2026-10-24T14:09:09.356Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-10-24T14:09:09.356Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nHID: alps: fix use-after-free on input2 registration failure\n\nalps_input_configured() stores data->input2 before calling\ninput_register_device().  If registration fails, input_free_device()\nfrees the input device but data->input2 still points to the freed memory.\nalps_input_configured() calls hid_hw_open() before allocating input2, so\nURBs are already active and raw_event can fire during the failure window.\nA U1_SP_ABSOLUTE_REPORT_ID report arriving then causes u1_raw_event()\nto dereference the freed data->input2 -> use-after-free.\n\nFix by only storing input2 into drvdata after successful registration\nand adding a NULL guard in the raw_event path."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:A/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:H","baseScore":7.1,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:A - `alps_id` uses `HID_BUS_ANY`, so a Bluetooth HIDP peer can bind `hid-alps`; its L2CAP ID-6 report follows `hidp_process_report()->hid_input_report()->alps_raw_event()->u1_raw_event()`, which dereferences the pointer left stale by `alps_input_configured()`.\nAC:H - The peer controls stick support and ID-6 report timing, and asynchronous `hidp_session_dev_work()` permits concurrency, but it cannot force `input_register_device(input2)` to fail; that requires a host-side allocation, device-model, or lock-interruption failure.\nPR:N - After the HIDP session is established, `hidp_session_run()` passes peer-supplied interrupt-channel reports to `hid_input_report()` without any per-report host privilege check; the nearby peer needs no kernel credential.\nUI:R - The victim must pair or connect the attacker's spoofed ALPS Bluetooth HID peer so BlueZ establishes the HIDP session and `hid-alps` probes it; subsequent triggering reports need no further action.\nS:U - The stale `data->input2` and the memory corrupted through it are host-kernel input-core objects; `u1_raw_event()` crosses no VM, IOMMU, or other security-authority boundary.\nC:H - The freed `struct input_dev` contains `vals`, `grab`, and handler-list pointers; after heap reuse, ID-6 reports drive `input_event()` and `input_pass_values()` through attacker-influenced reclaimed fields, permitting arbitrary kernel-memory disclosure.\nI:H - `input_event_dispose()` writes attacker-selected relative and button values through the reclaimed `input_dev->vals` pointer, while `input_pass_values()` follows reclaimed handler pointers, supporting arbitrary writes and control-flow hijacking.\nA:H - `u1_raw_event()` passes the freed pointer to `input_event()`, which reads `evbit`, takes `event_lock`, and accesses `vals` and handler lists; invalid reclaimed state can immediately cause an oops, panic, or lockup."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-alps.c"],"versions":[{"version":"2562756dde550901c224e3805102bdfc17e7d13a","lessThan":"64f824dccfd316fd3db8ea1cc4e8a76ad6a02740","status":"affected","versionType":"git"},{"version":"2562756dde550901c224e3805102bdfc17e7d13a","lessThan":"2e55d76e6e8a756f6d87c241de975599f82b02fa","status":"affected","versionType":"git"},{"version":"2562756dde550901c224e3805102bdfc17e7d13a","lessThan":"ef8ca5bb4c8b9696f38b1bebce1c851baa02b77b","status":"affected","versionType":"git"},{"version":"2562756dde550901c224e3805102bdfc17e7d13a","lessThan":"5a8ad63158165bacd6a1d7420e0fe5364c913b06","status":"affected","versionType":"git"},{"version":"2562756dde550901c224e3805102bdfc17e7d13a","lessThan":"47e5e177e9e4e10da6f2759d5ce8d049e33efdc4","status":"affected","versionType":"git"},{"version":"2562756dde550901c224e3805102bdfc17e7d13a","lessThan":"925da1d2a24787f24872de13a4680437c54de179","status":"affected","versionType":"git"},{"version":"2562756dde550901c224e3805102bdfc17e7d13a","lessThan":"443f6b93442b10b972a16f57ceaaea75b77892b6","status":"affected","versionType":"git"},{"version":"2562756dde550901c224e3805102bdfc17e7d13a","lessThan":"d3aba3442798ce4a4c8ce3104d7b286d61e605f9","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/hid/hid-alps.c"],"versions":[{"version":"4.8","status":"affected"},{"version":"0","lessThan":"4.8","status":"unaffected","versionType":"semver"},{"version":"5.10.271","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.222","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.189","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.158","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.112","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.55","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.2.9","lessThanOrEqual":"7.2.*","status":"unaffected","versionType":"semver"},{"version":"7.3","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"5.10.271"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"5.15.222"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.1.189"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.6.158"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.12.112"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"6.18.55"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"7.2.9"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.8","versionEndExcluding":"7.3"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/64f824dccfd316fd3db8ea1cc4e8a76ad6a02740"},{"url":"https://git.kernel.org/stable/c/2e55d76e6e8a756f6d87c241de975599f82b02fa"},{"url":"https://git.kernel.org/stable/c/ef8ca5bb4c8b9696f38b1bebce1c851baa02b77b"},{"url":"https://git.kernel.org/stable/c/5a8ad63158165bacd6a1d7420e0fe5364c913b06"},{"url":"https://git.kernel.org/stable/c/47e5e177e9e4e10da6f2759d5ce8d049e33efdc4"},{"url":"https://git.kernel.org/stable/c/925da1d2a24787f24872de13a4680437c54de179"},{"url":"https://git.kernel.org/stable/c/443f6b93442b10b972a16f57ceaaea75b77892b6"},{"url":"https://git.kernel.org/stable/c/d3aba3442798ce4a4c8ce3104d7b286d61e605f9"}],"title":"HID: alps: fix use-after-free on input2 registration failure","x_generator":{"engine":"bippy-1.2.0"}}}}