CVE-2026-31624 Details
Description
In the Linux kernel, the following vulnerability has been resolved: HID: core: clamp report_size in s32ton() to avoid undefined shift s32ton() shifts by n-1 where n is the field's report_size, a value that comes directly from a HID device. The HID parser bounds report_size only to <= 256, so a broken HID device can supply a report descriptor with a wide field that triggers shift exponents up to 256 on a 32-bit type when an output report is built via hid_output_field() or hid_set_field(). Commit ec61b41918587 ("HID: core: fix shift-out-of-bounds in hid_report_raw_event") added the same n > 32 clamp to the function snto32(), but s32ton() was never given the same fix as I guess syzbot hadn't figured out how to fuzz a device the same way. Fix this up by just clamping the max value of n, just like snto32() does.
A vulnerability exists in the Linux kernel's HID (Human Interface Device) subsystem, specifically within the s32ton function. This issue arises because s32ton shifts data by n-1, where n is the report size obtained from a HID device. The HID parser restricts report size to a maximum of 256, allowing a malfunctioning HID device to present a report descriptor with an excessively wide field. This can lead to undefined behavior by causing shift operations on a 32-bit integer that exceed safe limits, particularly when output reports are processed through hid_output_field or hid_set_field. Although a previous commit addressed similar shift-out-of-bounds issues in another function, s32ton was overlooked. The vulnerability has been patched by adding a clamp to limit the maximum shift value, ensuring safer handling of report sizes.
Users can apply the patch included in the Linux kernel stable release that addresses this vulnerability. Instructions for downloading the patched version are available on the Linux kernel official website.
Metrics
CVSS 4.0 Severity and Vector Strings:
No CVSS 4.0 data is available for this CVE.
CVSS 3.x Severity and Vector Strings:
No data available for CVSS Version 2.0 on this CVE.
No SSVC data is available for this CVE.
References to Advisories, Solutions, and Tools
By selecting these links, you will be leaving this site. These are references gathered from the official CVE record and are not endorsed by Volerion.
Weakness Enumeration
| CWE-ID | CWE Name | Source |
|---|---|---|
| NVD-CWE-noinfo | Insufficient Information to Classify Weakness | [email protected] |
Affected Products
| Product | Versions |
|---|---|
| linux linux kernel | >= 2.6.20.1, < 6.6.136 >= 6.7, < 6.12.83 >= 6.13, < 6.18.24 >= 6.19, < 6.19.14 >= 7.0, < 7.0.1 2.6.20 - |
CPE
Remediation
| |
Change History
6 change records found show changes
| Date | Action | Recorded By |
|---|---|---|
| Jun 17, 2026 | CVE Modified | kernel.org |
| Jun 1, 2026 | CVE Modified | kernel.org |
| Apr 28, 2026 | Initial Analysis | [email protected] |
| Apr 27, 2026 | CVE Modified | kernel.org |
| Apr 27, 2026 | CVE Modified | kernel.org |
| Apr 24, 2026 | New CVE Received | kernel.org |