CVE-2022-48978

HID: core: fix shift-out-of-bounds in hid_report_raw_event

MEDIUM
5.5
CVSS Score
Published: October 21, 2024 at 08:05 PM UTC
Updated: June 17, 2026 at 05:16 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%
SSVC
No known exploit

Description

In the Linux kernel, the following vulnerability has been resolved: HID: core: fix shift-out-of-bounds in hid_report_raw_event Syzbot reported shift-out-of-bounds in hid_report_raw_event. microsoft 0003:045E:07DA.0001: hid_field_extract() called with n (128) > 32! (swapper/0) ====================================================================== UBSAN: shift-out-of-bounds in drivers/hid/hid-core.c:1323:20 shift exponent 127 is too large for 32-bit type 'int' CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.1.0-rc4-syzkaller-00159-g4bbf3422df78 #0 Hardware name: Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022 Call Trace: <IRQ> __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x1e3/0x2cb lib/dump_stack.c:106 ubsan_epilogue lib/ubsan.c:151 [inline] __ubsan_handle_shift_out_of_bounds+0x3a6/0x420 lib/ubsan.c:322 snto32 drivers/hid/hid-core.c:1323 [inline] hid_input_fetch_field drivers/hid/hid-core.c:1572 [inline] hid_process_report drivers/hid/hid-core.c:1665 [inline] hid_report_raw_event+0xd56/0x18b0 drivers/hid/hid-core.c:1998 hid_input_report+0x408/0x4f0 drivers/hid/hid-core.c:2066 hid_irq_in+0x459/0x690 drivers/hid/usbhid/hid-core.c:284 __usb_hcd_giveback_urb+0x369/0x530 drivers/usb/core/hcd.c:1671 dummy_timer+0x86b/0x3110 drivers/usb/gadget/udc/dummy_hcd.c:1988 call_timer_fn+0xf5/0x210 kernel/time/timer.c:1474 expire_timers kernel/time/timer.c:1519 [inline] __run_timers+0x76a/0x980 kernel/time/timer.c:1790 run_timer_softirq+0x63/0xf0 kernel/time/timer.c:1803 __do_softirq+0x277/0x75b kernel/softirq.c:571 __irq_exit_rcu+0xec/0x170 kernel/softirq.c:650 irq_exit_rcu+0x5/0x20 kernel/softirq.c:662 sysvec_apic_timer_interrupt+0x91/0xb0 arch/x86/kernel/apic/apic.c:1107 ====================================================================== If the size of the integer (unsigned n) is bigger than 32 in snto32(), shift exponent will be too large for 32-bit type 'int', resulting in a shift-out-of-bounds bug. Fix this by adding a check on the size of the integer (unsigned n) in snto32(). To add support for n greater than 32 bits, set n to 32, if n is greater than 32.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

2.6.20 ≤ v < 4.14.3022.6.20 ≤ v < 4.19.2692.6.20 ≤ v < 4.9.3362.6.20 ≤ v < 5.10.1592.6.20 ≤ v < 5.15.832.6.20 ≤ v < 5.4.2272.6.20 ≤ v < 6.0.132.6.20 ≤ v < 6.14.10 ≤ v < 4.14.3024.15 ≤ v < 4.19.2694.20 ≤ v < 5.4.2275.11 ≤ v < 5.15.835.16 ≤ v < 6.0.135.5 ≤ v < 5.10.1596.1 rc16.1 rc26.1 rc36.1 rc46.1 rc56.1 rc66.1 rc76.1 rc8dde5845a529ff753364a6d1aea61180946270bfa
Vendor states this is fixed in 151493fe5a6ed1a88decc929a7368a3f2a246914 (fixed)
Vendor states this is fixed in 2b3b4d7aadaa1b6b58d0f34823bf86cfe8a31b4d (fixed)
Vendor states this is fixed in 809783f8b4b600c7fb3bccb10fefef822601ea3b (fixed)
Vendor states this is fixed in 8e14f20e12224ee2429f75a5c9418a700e26a8d3 (fixed)
Vendor states this is fixed in bc03f809da78fc79e4aee132d4e5c6a2b3aeec73 (fixed)
Vendor states this is fixed in db1ed1b3fb4ec0d19080a102956255769bc45c79 (fixed)
Vendor states this is fixed in ec61b41918587be530398b0d1c9a0d16619397e5 (fixed)
Vendor states this is fixed in f755d11c55b29049b77da5cd9ab2faae96eb33c3 (fixed)
Vendor states this is fixed in 2.6.20 (unaffected)
Vendor states this is fixed in 4.14.302 (unaffected)
Vendor states this is fixed in 4.19.269 (unaffected)
Vendor states this is fixed in 4.9.336 (unaffected)
Vendor states this is fixed in 5.10.159 (unaffected)
Vendor states this is fixed in 5.15.83 (unaffected)
Vendor states this is fixed in 5.4.227 (unaffected)
Vendor states this is fixed in 6.0.13 (unaffected)
Vendor states this is fixed in 6.1 (unaffected)

References (8)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/151493fe5a6ed1a88decc929a7368a3f2a246914
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/2b3b4d7aadaa1b6b58d0f34823bf86cfe8a31b4d
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/809783f8b4b600c7fb3bccb10fefef822601ea3b
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/8e14f20e12224ee2429f75a5c9418a700e26a8d3
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/bc03f809da78fc79e4aee132d4e5c6a2b3aeec73
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/db1ed1b3fb4ec0d19080a102956255769bc45c79
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ec61b41918587be530398b0d1c9a0d16619397e5
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/f755d11c55b29049b77da5cd9ab2faae96eb33c3

SSVC — Action Prioritization

SSVCNo known exploitNot automatablePartial impact

SSVC signals action urgency (what to patch first), separate from CVSS which measures severity.

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
NVD-CWE-Other

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card