← Back to CVE Explorer

CVE-2026-89621

Full vulnerability record from the local CVENow database.

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.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-09-11 20:19:47.397000
Last modified
2026-10-19 09:17:58.880000
View original CVE JSON
{
  "id": "CVE-2026-89621",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-09-11T20:19:47.397",
  "lastModified": "2026-10-19T09:17:58.880",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: mcp2221: validate report size in mcp2221_raw_event()\n\nmcp2221_raw_event() never validates the size of incoming HID reports.\nIn the MCP2221_I2C_GET_DATA path it trusts the device-supplied data[3]\nas the copy length without checking that 4 + data[3] bytes actually\nexist in the received report. A malicious or misbehaving USB device can\nsend a short report with a large data[3], causing the memcpy to read\npast the valid report data in the HID transfer buffer and leak\nuninitialized kernel memory back to userspace through the I2C/SMBus\nread path.\n\nAdd a minimum size check at entry and validate that the source range\nfits within the received report before the copy."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/hid/hid-mcp2221.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "lessThan": "cb38b1f149b7143355b37e86c841acf0076e5c2a",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "lessThan": "b2c67dc0e30c308647bbd9b9e5d69a44c9d2733d",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "lessThan": "fffcfa367072628c3144cca17d2a3c3c9e50c057",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "lessThan": "c1c508e8923911cb458234997e55b7a4b9aa066f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "lessThan": "bdc6a3af0dd734a326acdb7d6401a3b6a9f4f149",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "lessThan": "127de5919820f88a9d55e8371ad4ac49f625f4c5",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "lessThan": "7c18fb36708a97ff6772825cc087b6d537bbf0d5",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "lessThan": "2c9a6998c19503626c57a2267bf279e204113079",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/hid/hid-mcp2221.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "5.7",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "5.7",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.270",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.221",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.188",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.157",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.109",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.50",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.4",
              "lessThanOrEqual": "7.2.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.3",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/127de5919820f88a9d55e8371ad4ac49f625f4c5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/2c9a6998c19503626c57a2267bf279e204113079",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7c18fb36708a97ff6772825cc087b6d537bbf0d5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/b2c67dc0e30c308647bbd9b9e5d69a44c9d2733d",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/bdc6a3af0dd734a326acdb7d6401a3b6a9f4f149",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/c1c508e8923911cb458234997e55b7a4b9aa066f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/cb38b1f149b7143355b37e86c841acf0076e5c2a",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/fffcfa367072628c3144cca17d2a3c3c9e50c057",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}