HID: pidff: fix OOB write when hid->inputs is empty
Key facts
- Attack vector
- —
- Privileges required
- —
- User interaction
- —
- Attack complexity
- —
- Impact type
- —
- Confidentiality · integrity · availability
- —
- Fix status
- Partial Red Hat: 2 without a fix
No CVSS vector from any source. Fix status from CNA and Red Hat.
Summary
In the Linux kernel, the following vulnerability has been resolved: HID: pidff: fix OOB write when hid->inputs is empty hid_pidff_init_with_quirks() derives its input_dev from list_entry(hid->inputs.next, struct hid_input, list) without first checking that hid->inputs is non-empty. The list member of struct hid_input is at offset 0, so on an empty list list_entry() yields &hid->inputs itself and the following hidinput->input load reads an unrelated member of struct hid_device. dev is then a type-confused pointer, and force-feedback init writes through it: each set_bit(FF_*, dev->ffbit) stores 8 bytes at dev + 192, past the end of the object dev actually aliases, and input_ff_create() adds further writes of a heap pointer and two function pointers. Until hid-universal-pidff the only caller was hid_pidff_init() from usbhid, which runs under HID_CLAIMED_INPUT and therefore always has at least one hid_input. universal_pidff_probe() starts the device with HID_CONNECT_DEFAULT & ~HID_CONNECT_FF and then calls hid_pidff_init_with_quirks() directly whenever the descriptor carries a PID usage page, bypassing that gate. A report descriptor whose only application collection is on HID_UP_PID leaves hid->inputs empty while hid_connect() still succeeds through the hidraw claim, so probe reaches the unguarded list_entry(). The write happens in the USB probe path, on the hotplug workqueue, so plugging in a malicious device is enough to trigger it; no attacker software and no logged-in user are required. KASAN reports an 8-byte out-of-bounds write in hid_pidff_init_with_quirks() reached from universal_pidff_probe(). Check for an empty list before deriving dev and return -ENODEV, as the other HID force-feedback drivers already do. universal_pidff_probe() propagates the error and unwinds. Discovered by XBOW, triaged by Baul Lee <[email protected]>
Why it matters now
SSVC decision points
Not available: CISA has not published SSVC decision points for this record.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| Linux | Linux | 6.6.88 to before 6.6.156; 6.12.24 to before 6.12.108; 6.13.12 to before 6.14; 6.14.3 to before 6.15 | 6.6.156, 6.12.108, 6.14, 6.15 | Patch available | CNA |
| Linux | Linux | 6.15 and later | 6.6.156, 6.12.108, 6.18.47, 7.1.11, 7.2.1, 7.3 | Patch available | CNA |
- Linux VendorLinux Affected 6.6.88 to before 6.6.156; 6.12.24 to before 6.12.108; 6.13.12 to before 6.14; 6.14.3 to before 6.15 Fixed in 6.6.156, 6.12.108, 6.14, 6.15 Patch available CNA
- Linux VendorLinux Affected 6.15 and later Fixed in 6.6.156, 6.12.108, 6.18.47, 7.1.11, 7.2.1, 7.3 Patch available CNA
Remediation
- Fix · CNA Linux (Linux) Fixed in 6.6.156, 6.12.108, 6.14, 6.15
- Fix · CNA Linux (Linux) Fixed in 6.6.156, 6.12.108, 6.18.47, 7.1.11, 7.2.1, 7.3
Vendor assessments
Red Hat
Red Hat rating: Important. Red Hat's page for this CVE →
| Product | Status | Plan or fix |
|---|---|---|
| Red Hat Enterprise Linux 10 | Affected | No fix yet |
| Red Hat Enterprise Linux 6 | Affected | — |
Not affected: 5 products
- Red Hat Enterprise Linux 7
- Red Hat Enterprise Linux 8
- Red Hat Enterprise Linux 9
- Red Hat OpenShift Container Platform 4
- Red Hat OpenShift Container Platform 5
Timeline
- 2026-10-02 Threatist record created from CVE-2026-80780
- 2026-10-03 Alias added: GHSA-rxff-7rcf-x4wj
- 2026-10-07 Affected versions changed · Red Hat
- 2026-10-07 CVSS score added · Red Hat
- 2026-10-19 Fix available: Linux/[email protected] · CNA
- 2026-11-05 Affected versions changed · Red Hat
References
Other 6
- https://git.kernel.org/stable/c/2e0471bf3ab2a6b7eedcc3b8a2a17286b6a9ae1a
- https://git.kernel.org/stable/c/ad9330f7e74a97842815a291a0d7389ed2f34504
- https://git.kernel.org/stable/c/4529c03c3da8f91392cd630453452f569973f4cd
- https://git.kernel.org/stable/c/d416eeb7d016d82af67c149d884bc6a9323c4ac7
- https://git.kernel.org/stable/c/86b63adfa5e132beac4be72668fdf9128fe51d2e
- https://git.kernel.org/stable/c/67bb1074e3d2d12fa059a9cc707e89398a4e4704
More Linux vulnerabilities
- TI-2025-26358 tls: fix handling of zero-length records on the rx_list KEVCVSS 3.1CRITICAL 9.8
- TI-2026-38352 netfilter: bridge: make ebt_snat ARP rewrite writable KEVCVSS 3.1HIGH 8.8
- TI-2021-02452 Incorrect authorization in Ubuntu linux kernel KEVCVSS 3.1HIGH 8.8
- TI-2013-05264 The (1) get_user and (2) put_user API functions in the Linux kernel before 3.5.5 on the… KEVCVSS 3.1HIGH 8.8
- TI-2022-00125 Integer overflow in kernel KEVCVSS 3.1HIGH 8.4
- TI-2013-01864 The perf_swevent_init function in kernel/events/core.c in the Linux kernel before 3.8.9… KEVCVSS 3.1HIGH 8.4
Sources
- CVE-2026-80780 · CVE Program
- CVE-2026-80780 · NVD
- FIRST EPSS
- GHSA-rxff-7rcf-x4wj · GitHub Advisory Database · CC BY 4.0
- CVE-2026-80780 · Red Hat security data · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences