Description
In the Linux kernel, the following vulnerability has been resolved:

HID: mcp2221: clear rxbuf after I2C/SMBus transfer completes

mcp_i2c_smbus_read() stores the caller-supplied buffer pointer in
mcp->rxbuf for the duration of a transfer but never clears it when the
transfer finishes or times out. Once the caller frees or reuses the
buffer, mcp->rxbuf becomes a dangling pointer. A delayed or spurious
MCP2221_I2C_GET_DATA report can then drive mcp2221_raw_event() to
memcpy device data into the freed memory, causing a write
use-after-free.

Route all return paths through a single exit point that clears
mcp->rxbuf and mcp->rxbuf_size, so that the existing !mcp->rxbuf guard
in the raw_event handler can reject any report arriving after the
transfer has ended.
Published: 2026-09-11
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: Memory corruption that may lead to local privilege escalation (inferred)
Action: Apply Patch
AI Analysis

Impact

The MCP2221 USB‑to‑I2C HID driver stores the caller‑supplied buffer pointer in an internal field (mcp->rxbuf) during an I2C/SMBus read operation but never clears it when the transfer ends or times out. If the caller later frees or reuses the buffer, the driver now holds a dangling pointer. A delayed MCP2221_I2C_GET_DATA report can cause the raw_event handler to copy data into that freed memory, producing a kernel write‑use‑after‑free and resulting in memory corruption. This corruption could destabilize the kernel and, while the CVE does not explicitly state privilege escalation, an gain local elevation (inferred).

Affected Systems

The flaw lives in the Linux kernel's HID subsystem for the MCP2221 driver. All kernel releases that include this driver code before the fix that clears the rxbuf pointer after a transfer are affected. This impacts any Linux system (any distribution or vendor) running an unpatched kernel with the MCP2221 driver enabled. The affected product is the Linux kernel, specifically the mcp2221 HID driver component.

Risk and Exploitability

The CVSS score of 7.0 signals moderate‑to‑high severity. The EPSS score of less than 1% suggests a low probability of widespread exploitation, and the vulnerability is not listed in the CISA KEV catalog. The attack vector is local and requires the presence of an MCP2221 device attached to the machine and the ability to trigger an I2C/SMBus read operation. Successful exploitation would first corrupt kernel memory and could allow an attacker with local access to attempt privilege escalation (inferred).

Generated by OpenCVE AI on September 13, 2026 at 07:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that contains the mcp2221 driver fix that clears the rxbuf pointer after transfer completion or timeout.
  • If an immediate kernel upgrade is not possible, disable or blacklist the mcp2221 HID driver so it does not load during boot or runtime.
  • Limit access to the MCP2221 device by removing it from the system or applying USB device filtering or BIOS/UEFI settings to restrict driver operation.

Generated by OpenCVE AI on September 13, 2026 at 07:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 13 Sep 2026 06:45:00 +0000

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'}


Sat, 12 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
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

Important


Fri, 11 Sep 2026 23:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: HID: mcp2221: clear rxbuf after I2C/SMBus transfer completes mcp_i2c_smbus_read() stores the caller-supplied buffer pointer in mcp->rxbuf for the duration of a transfer but never clears it when the transfer finishes or times out. Once the caller frees or reuses the buffer, mcp->rxbuf becomes a dangling pointer. A delayed or spurious MCP2221_I2C_GET_DATA report can then drive mcp2221_raw_event() to memcpy device data into the freed memory, causing a write use-after-free. Route all return paths through a single exit point that clears mcp->rxbuf and mcp->rxbuf_size, so that the existing !mcp->rxbuf guard in the raw_event handler can reject any report arriving after the transfer has ended.
Title HID: mcp2221: clear rxbuf after I2C/SMBus transfer completes
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-13T06:32:02.209Z

Reserved: 2026-09-11T19:38:34.737Z

Link: CVE-2026-89622

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-11T20:19:47.517

Modified: 2026-09-13T07:17:27.677

Link: CVE-2026-89622

cve-icon Redhat

Severity : Important

Publid Date: 2026-09-11T19:45:20Z

Links: CVE-2026-89622 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-13T07:30:17Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference