CVE-2026-23178

HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()

Published Feb 14, 2026 CVSS 3.1 · 7.8 High EPSS < 1% KEV · Not listed
Description
In the Linux kernel, the following vulnerability has been resolved:

HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()

`i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data
into `ihid->rawbuf`.

The former can come from the userspace in the hidraw driver and is only
bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set
`max_buffer_size` field of `struct hid_ll_driver` which we do not).

The latter has size determined at runtime by the maximum size of
different report types you could receive on any particular device and
can be a much smaller value.

Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`.

The impact is low since access to hidraw devices requires root.

Analysis

AI-generated

Technical impact

The Linux kernel’s i2c‑hid driver contains a buffer overflow when processing report requests. A user‑space request can cause the kernel to read more data than fits in the destination buffer, leading to an out‑of‑bounds write in kernel memory. This may corrupt kernel data and could trigger a crash, but exploitation would require access to /dev/hidraw, which is restricted to root, so the practical impact is limited.

Affected Systems

All Linux kernel versions that include the unpatched i2c‑hid driver are affected. The vendor is Linux, the product is the Linux kernel. No specific version numbers are listed, so every kernel build before the patch that contains the i2c‑hid subsystem is potentially vulnerable.

Risk and Exploitability

The CVSS score of 7.8 indicates medium‑to‑high severity, yet the EPSS score is less than 1 % and the vulnerability is not in CISA’s KEV catalog, suggesting a low likelihood of exploitation. Because access to /dev/hidraw devices requires root, the attack vector is local and requires privileged execution. The consequence is therefore limited to systems where an attacker already has root or can compromise a privileged process; under typical defense‑in‑depth controls the risk remains low.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to the latest release that contains the CVE‑2026‑23178 fix
  • If upgrading is delayed, restrict access to /dev/hidraw* device files to privileged users or enforce mandatory access control policies via SELinux, AppArmor, or similar mechanisms so that only trusted processes can read or write them
  • If the system does not require i2c‑hid functionality, disable the driver by blacklisting it in /etc/modprobe.d or by compiling the kernel without i2c‑hid support

Generated by OpenCVE AI on October 19, 2026 at 21:10 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4499-1 linux-6.1 security update
Debian DSA Debian DSA DSA-6141-1 linux security update
Debian DSA Debian DSA DSA-6163-1 linux security update
Ubuntu USN Ubuntu USN USN-8278-1 Linux kernel vulnerabilities
Ubuntu USN Ubuntu USN USN-8289-1 Linux kernel (NVIDIA) vulnerabilities
Ubuntu USN Ubuntu USN USN-8296-1 Linux kernel (FIPS) vulnerabilities
Ubuntu USN Ubuntu USN USN-8296-2 Linux kernel (NVIDIA Tegra) vulnerabilities
Ubuntu USN Ubuntu USN USN-8278-2 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8440-1 Linux kernel (Azure) vulnerabilities
Ubuntu USN Ubuntu USN USN-8499-1 Linux kernel (Xilinx) vulnerabilities
Ubuntu USN Ubuntu USN USN-8289-2 Linux kernel (NVIDIA) vulnerabilities
Ubuntu USN Ubuntu USN USN-8393-1 Linux kernel (Azure FIPS) vulnerabilities
History
Type Values Removed Values Added
Weaknesses CWE-122
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}

Type Values Removed Values Added
Weaknesses CWE-119
Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}

Type Values Removed Values Added
References
Metrics threat_severity

None

cvssV3_1

{'score': 7.0, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H'}

threat_severity

Moderate

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report() `i2c_hid_xfer` is used to read `recv_len + sizeof(__le16)` bytes of data into `ihid->rawbuf`. The former can come from the userspace in the hidraw driver and is only bounded by HID_MAX_BUFFER_SIZE(16384) by default (unless we also set `max_buffer_size` field of `struct hid_ll_driver` which we do not). The latter has size determined at runtime by the maximum size of different report types you could receive on any particular device and can be a much smaller value. Fix this by truncating `recv_len` to `ihid->bufsize - sizeof(__le16)`. The impact is low since access to hidraw devices requires root.
Title HID: i2c-hid: fix potential buffer overflow in i2c_hid_get_report()
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References
Weaknesses
  • CWE-119

    Improper Restriction of Operations within the Bounds of a Memory Buffer

  • CWE-122

    Heap-based Buffer Overflow

Sources

Status
PUBLISHED
Assigner
Linux
Published
Updated
Oct 19, 2026, 6:25 PM
Reserved
Jan 13, 2026, 3:37 PM
Status
Deferred
Published
Feb 14, 2026, 5:15 PM
Modified
Oct 19, 2026, 7:17 PM
Severity
Moderate
Public date
Feb 14, 2026, 12:00 AM