CVE-2026-31624

HID: core: clamp report_size in s32ton() to avoid undefined shift

State
Published
Severity
Not scored
Published
Apr 24, 2026
Updated
Oct 15, 2026
Reserved
Mar 9, 2026

Read the record on cve.org

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.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • dde5845a529ff753364a6d1aea61180946270bfa to before 76ad02854a30c394e0c076e6e6bed0a388573a94Affected
  • dde5845a529ff753364a6d1aea61180946270bfa to before eb415ddaf25e09ddb8fe5736a70c9de2e6462534Affected
  • dde5845a529ff753364a6d1aea61180946270bfa to before 0ab048dbdb1daacf17d52e9252297eb6e1298e49Affected
  • dde5845a529ff753364a6d1aea61180946270bfa to before 932ae5309e53561197aa7d1606c7cf63af10e24fAffected
  • dde5845a529ff753364a6d1aea61180946270bfa to before 58386f00af710922cafb0fb69211497beddfaa95Affected
  • dde5845a529ff753364a6d1aea61180946270bfa to before 8a8333237f1f5caab8d4c3d2c2e7578c4263a97fAffected
  • dde5845a529ff753364a6d1aea61180946270bfa to before ea363a34086ddb4231adc581a7f36c39ec154bfcAffected
  • dde5845a529ff753364a6d1aea61180946270bfa to before 97014719bb8fccb1ffcbbc299e84b1f11b114195Affected
  • dde5845a529ff753364a6d1aea61180946270bfa to before 69c02ffde6ed4d535fa4e693a9e572729cad3d0dAffected
LinuxLinux
  • 2.6.20Affected
  • before 2.6.20Not affected
  • 5.10.258 through 5.10.*Not affected
  • 5.15.209 through 5.15.*Not affected
  • 6.1.175 through 6.1.*Not affected
  • 6.6.136 through 6.6.*Not affected
  • 6.12.83 through 6.12.*Not affected
  • 6.18.24 through 6.18.*Not affected
  • 6.19.14 through 6.19.*Not affected
  • 7.0.1 through 7.0.*Not affected
  • 7.1 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.