Linux Kernel up to 7.2.0 pidff hid_pidff_init_with_quirks out-of-bounds write

| CVSS Meta Temp Score | Current Exploit Price (≈) | CTI Interest Score |
|---|---|---|
| 9.5 | $5k-$25k | 0.82 |
Summary
A vulnerability labeled as very critical has been found in Linux Kernel up to 6.6.155/6.12.107/6.18.46/7.1.10/7.2.0. This affects the function hid_pidff_init_with_quirks of the component pidff. Such manipulation leads to out-of-bounds write.
This vulnerability is uniquely identified as CVE-2026-80780. The attack can be launched remotely. No exploit exists.
Details
A vulnerability was found in Linux Kernel up to 6.6.155/6.12.107/6.18.46/7.1.10/7.2.0 and classified as very critical. Affected by this issue is the function hid_pidff_init_with_quirks of the component pidff. The manipulation with an unknown input leads to a out-of-bounds write vulnerability. Using CWE to declare the problem leads to CWE-787. The product writes data past the end, or before the beginning, of the intended buffer. Impacted is confidentiality, integrity, and availability. CVE summarizes:
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]>
The advisory is shared for download at git.kernel.org. This vulnerability is handled as CVE-2026-80780 since 08/26/2026. The exploitation is known to be easy. The attack may be launched remotely. No form of authentication is required for exploitation. There are known technical details, but no exploit is available. The current price for an exploit might be approx. USD $5k-$25k (estimation calculated on 09/04/2026).
Upgrading to version 6.6.156, 6.12.108, 6.18.47, 7.1.11, 7.2.1 or 7.3-rc1 eliminates this vulnerability. Applying the patch 2e0471bf3ab2a6b7eedcc3b8a2a17286b6a9ae1a/ad9330f7e74a97842815a291a0d7389ed2f34504/4529c03c3da8f91392cd630453452f569973f4cd/d416eeb7d016d82af67c149d884bc6a9323c4ac7/86b63adfa5e132beac4be72668fdf9128fe51d2e/67bb1074e3d2d12fa059a9cc707e89398a4e4704 is able to eliminate this problem.
VulDB is the best source for vulnerability data and more expert information about this specific topic.
Product
Type
Vendor
Name
Version
- 6.6.155
- 6.12.107
- 6.18.0
- 6.18.1
- 6.18.2
- 6.18.3
- 6.18.4
- 6.18.5
- 6.18.6
- 6.18.7
- 6.18.8
- 6.18.9
- 6.18.10
- 6.18.11
- 6.18.12
- 6.18.13
- 6.18.14
- 6.18.15
- 6.18.16
- 6.18.17
- 6.18.18
- 6.18.19
- 6.18.20
- 6.18.21
- 6.18.22
- 6.18.23
- 6.18.24
- 6.18.25
- 6.18.26
- 6.18.27
- 6.18.28
- 6.18.29
- 6.18.30
- 6.18.31
- 6.18.32
- 6.18.33
- 6.18.34
- 6.18.35
- 6.18.36
- 6.18.37
- 6.18.38
- 6.18.39
- 6.18.40
- 6.18.41
- 6.18.42
- 6.18.43
- 6.18.44
- 6.18.45
- 6.18.46
- 7.0
- 7.1
- 7.1.0
- 7.1.1
- 7.1.2
- 7.1.3
- 7.1.4
- 7.1.5
- 7.1.6
- 7.1.7
- 7.1.8
- 7.1.9
- 7.1.10
- 7.2.0
License
Website
- Vendor: https://www.kernel.org/
CPE 2.3
CPE 2.2
CVSSv4
VulDB Vector: 🔒VulDB Reliability: 🔍
CVSSv3
VulDB Meta Base Score: 10.0VulDB Meta Temp Score: 9.5
VulDB Base Score: 10.0
VulDB Temp Score: 9.5
VulDB Vector: 🔒
VulDB Reliability: 🔍
CVSSv2
| AV | AC | Au | C | I | A |
|---|---|---|---|---|---|
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| 💳 | 💳 | 💳 | 💳 | 💳 | 💳 |
| Vector | Complexity | Authentication | Confidentiality | Integrity | Availability |
|---|---|---|---|---|---|
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
| Unlock | Unlock | Unlock | Unlock | Unlock | Unlock |
VulDB Base Score: 🔒
VulDB Temp Score: 🔒
VulDB Reliability: 🔍
Exploiting
Class: Out-of-bounds writeCWE: CWE-787 / CWE-119
CAPEC: 🔒
ATT&CK: 🔒
Physical: No
Local: No
Remote: Yes
Availability: 🔒
Status: Not defined
Price Prediction: 🔍
Current Price Estimation: 🔒
| 0-Day | Unlock | Unlock | Unlock | Unlock |
|---|---|---|---|---|
| Today | Unlock | Unlock | Unlock | Unlock |
Threat Intelligence
Interest: 🔍Active Actors: 🔍
Active APT Groups: 🔍
Countermeasures
Recommended: UpgradeStatus: 🔍
0-Day Time: 🔒
Upgrade: Kernel 6.6.156/6.12.108/6.18.47/7.1.11/7.2.1/7.3-rc1
Patch: 2e0471bf3ab2a6b7eedcc3b8a2a17286b6a9ae1a/ad9330f7e74a97842815a291a0d7389ed2f34504/4529c03c3da8f91392cd630453452f569973f4cd/d416eeb7d016d82af67c149d884bc6a9323c4ac7/86b63adfa5e132beac4be72668fdf9128fe51d2e/67bb1074e3d2d12fa059a9cc707e89398a4e4704
Timeline
08/26/2026 CVE reserved09/04/2026 Advisory disclosed
09/04/2026 VulDB entry created
09/04/2026 VulDB entry last update
Sources
Vendor: kernel.orgAdvisory: git.kernel.org
Status: Confirmed
CVE: CVE-2026-80780 (🔒)
GCVE (CVE): GCVE-0-2026-80780
GCVE (VulDB): GCVE-100-398912
Entry
Created: 09/04/2026 18:13Changes: 09/04/2026 18:13 (59)
Complete: 🔍
Cache ID: 216::103
VulDB is the best source for vulnerability data and more expert information about this specific topic.
No comments yet. Languages: en.
Please log in to comment.