CVE-2022-50131 (GCVE-0-2022-50131)

Vulnerability from cvelistv5 – Published: 2025-06-18 11:02 – Updated: 2026-08-05 08:57
VLAI
Title
HID: mcp2221: prevent a buffer overflow in mcp_smbus_write()
Summary
In the Linux kernel, the following vulnerability has been resolved: HID: mcp2221: prevent a buffer overflow in mcp_smbus_write() Smatch Warning: drivers/hid/hid-mcp2221.c:388 mcp_smbus_write() error: __memcpy() '&mcp->txbuf[5]' too small (59 vs 255) drivers/hid/hid-mcp2221.c:388 mcp_smbus_write() error: __memcpy() 'buf' too small (34 vs 255) The 'len' variable can take a value between 0-255 as it can come from data->block[0] and it is user data. So add an bound check to prevent a buffer overflow in memcpy().
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 67a95c21463d066060b0f66d65a75d45bb386ffb , < 66c8e816f2f2ca4a61b406503bd10bad1b35f72f (git)
Affected: 67a95c21463d066060b0f66d65a75d45bb386ffb , < 91443c669d280937968f0aa4edefa741cfe35314 (git)
Affected: 67a95c21463d066060b0f66d65a75d45bb386ffb , < 6402116a7b5ec80fa40fd145a80c813019cd555f (git)
Affected: 67a95c21463d066060b0f66d65a75d45bb386ffb , < 3c0f8a59f2cc8841ee6653399a77f4f3e6e9a270 (git)
Affected: 67a95c21463d066060b0f66d65a75d45bb386ffb , < 62ac2473553a00229e67bdf3cb023b62cf7f5a9a (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.7
Unaffected: 0 , < 5.7 (semver)
Unaffected: 5.10.137 , ≤ 5.10.* (semver)
Unaffected: 5.15.61 , ≤ 5.15.* (semver)
Unaffected: 5.18.18 , ≤ 5.18.* (semver)
Unaffected: 5.19.2 , ≤ 5.19.* (semver)
Unaffected: 6.0 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/hid/hid-mcp2221.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "66c8e816f2f2ca4a61b406503bd10bad1b35f72f",
              "status": "affected",
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "versionType": "git"
            },
            {
              "lessThan": "91443c669d280937968f0aa4edefa741cfe35314",
              "status": "affected",
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "versionType": "git"
            },
            {
              "lessThan": "6402116a7b5ec80fa40fd145a80c813019cd555f",
              "status": "affected",
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "versionType": "git"
            },
            {
              "lessThan": "3c0f8a59f2cc8841ee6653399a77f4f3e6e9a270",
              "status": "affected",
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "versionType": "git"
            },
            {
              "lessThan": "62ac2473553a00229e67bdf3cb023b62cf7f5a9a",
              "status": "affected",
              "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/hid/hid-mcp2221.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.7"
            },
            {
              "lessThan": "5.7",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.137",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.61",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.18.*",
              "status": "unaffected",
              "version": "5.18.18",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.19.*",
              "status": "unaffected",
              "version": "5.19.2",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.137",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.61",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.18.18",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.19.2",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.0",
                  "versionStartIncluding": "5.7",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: mcp2221: prevent a buffer overflow in mcp_smbus_write()\n\nSmatch Warning:\ndrivers/hid/hid-mcp2221.c:388 mcp_smbus_write() error: __memcpy()\n\u0027\u0026mcp-\u003etxbuf[5]\u0027 too small (59 vs 255)\ndrivers/hid/hid-mcp2221.c:388 mcp_smbus_write() error: __memcpy() \u0027buf\u0027\ntoo small (34 vs 255)\n\nThe \u0027len\u0027 variable can take a value between 0-255 as it can come from\ndata-\u003eblock[0] and it is user data. So add an bound check to prevent a\nbuffer overflow in memcpy()."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The overflow is reached via the local i2c-dev I2C_SMBUS ioctl into mcp_smbus_xfer()/mcp_smbus_write(), not by crafted USB HID reports. An attached MCP2221 is a deployment precondition; the attack is a local syscall against /dev/i2c-N.\nAC:L - An attacker who can open the adapter sets data-\u003eblock[0] above I2C_SMBUS_BLOCK_MAX and triggers memcpy into txbuf[64] on the write path before any USB/I2C slave response, so no race or external state is required.\nPR:L - i2cdev_open() has no capability check; access depends on /dev/i2c-* permissions (commonly 0660 root:i2c or equivalent on embedded/industrial systems), which is basic local access rather than real root.\nUI:N - Exploitation needs only ioctl(I2C_SMBUS) with an oversized block write (I2C_SMBUS_BLOCK_DATA / I2C_SMBUS_I2C_BLOCK_DATA / BLOCK_PROC_CALL); no victim interaction is required.\nS:U - This is ordinary host-kernel heap memory corruption (local privilege escalation/DoS) with no VM escape, IOMMU bypass, or other cross-authority impact.\nC:H - Oversized memcpy into mcp-\u003etxbuf overflows the heap-allocated struct mcp2221 and adjacent heap, a memory-corruption primitive that can be leveraged for information disclosure.\nI:H - Out-of-bounds heap write of up to ~196 bytes past txbuf (controlled length from data-\u003eblock[0]) can corrupt adjacent state including pointers (e.g. gc) and enable integrity compromise/control-flow hijacking.\nA:H - The same heap corruption can oops or panic the kernel even when not fully exploited for code execution."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T08:57:29.234Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/66c8e816f2f2ca4a61b406503bd10bad1b35f72f"
        },
        {
          "url": "https://git.kernel.org/stable/c/91443c669d280937968f0aa4edefa741cfe35314"
        },
        {
          "url": "https://git.kernel.org/stable/c/6402116a7b5ec80fa40fd145a80c813019cd555f"
        },
        {
          "url": "https://git.kernel.org/stable/c/3c0f8a59f2cc8841ee6653399a77f4f3e6e9a270"
        },
        {
          "url": "https://git.kernel.org/stable/c/62ac2473553a00229e67bdf3cb023b62cf7f5a9a"
        }
      ],
      "title": "HID: mcp2221: prevent a buffer overflow in mcp_smbus_write()",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2022-50131",
    "datePublished": "2025-06-18T11:02:56.796Z",
    "dateReserved": "2025-06-18T10:57:27.418Z",
    "dateUpdated": "2026-08-05T08:57:29.234Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2022-50131",
      "date": "2026-09-22",
      "epss": "0.00221",
      "percentile": "0.12943"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/hid/hid-mcp2221.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "66c8e816f2f2ca4a61b406503bd10bad1b35f72f",
                    "status": "affected",
                    "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "91443c669d280937968f0aa4edefa741cfe35314",
                    "status": "affected",
                    "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6402116a7b5ec80fa40fd145a80c813019cd555f",
                    "status": "affected",
                    "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "3c0f8a59f2cc8841ee6653399a77f4f3e6e9a270",
                    "status": "affected",
                    "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "62ac2473553a00229e67bdf3cb023b62cf7f5a9a",
                    "status": "affected",
                    "version": "67a95c21463d066060b0f66d65a75d45bb386ffb",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/hid/hid-mcp2221.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.7"
                  },
                  {
                    "lessThan": "5.7",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.10.*",
                    "status": "unaffected",
                    "version": "5.10.137",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.61",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.18.*",
                    "status": "unaffected",
                    "version": "5.18.18",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.19.*",
                    "status": "unaffected",
                    "version": "5.19.2",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "6.0",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "configurations": [
          {
            "nodes": [
              {
                "cpeMatch": [
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "674AABE4-BC3E-4530-9717-5DFE7AB70A3F",
                    "versionEndExcluding": "5.10.137",
                    "versionStartIncluding": "5.7",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "51861563-7F40-460F-82CD-2D3FBDAD6618",
                    "versionEndExcluding": "5.15.61",
                    "versionStartIncluding": "5.11",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "5B42E453-8837-49D0-A5EF-03F818A6DC11",
                    "versionEndExcluding": "5.18.18",
                    "versionStartIncluding": "5.16",
                    "vulnerable": true
                  },
                  {
                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                    "matchCriteriaId": "A1A2A5A5-4598-4D7E-BA07-4660398D6C8F",
                    "versionEndExcluding": "5.19.2",
                    "versionStartIncluding": "5.19",
                    "vulnerable": true
                  }
                ],
                "negate": false,
                "operator": "OR"
              }
            ]
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nHID: mcp2221: prevent a buffer overflow in mcp_smbus_write()\n\nSmatch Warning:\ndrivers/hid/hid-mcp2221.c:388 mcp_smbus_write() error: __memcpy()\n\u0027\u0026mcp-\u003etxbuf[5]\u0027 too small (59 vs 255)\ndrivers/hid/hid-mcp2221.c:388 mcp_smbus_write() error: __memcpy() \u0027buf\u0027\ntoo small (34 vs 255)\n\nThe \u0027len\u0027 variable can take a value between 0-255 as it can come from\ndata-\u003eblock[0] and it is user data. So add an bound check to prevent a\nbuffer overflow in memcpy()."
          },
          {
            "lang": "es",
            "value": "En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: HID: mcp2221: evitar un desbordamiento de b\u00fafer en mcp_smbus_write() Advertencia de Smatch: drivers/hid/hid-mcp2221.c:388 Error de mcp_smbus_write(): __memcpy() \u0027\u0026amp;mcp-\u0026gt;txbuf[5]\u0027 demasiado peque\u00f1o (59 frente a 255) drivers/hid/hid-mcp2221.c:388 Error de mcp_smbus_write(): __memcpy() \u0027buf\u0027 demasiado peque\u00f1o (34 frente a 255) La variable \u0027len\u0027 puede tomar un valor entre 0 y 255, ya que puede provenir de data-\u0026gt;block[0] y son datos de usuario. Por lo tanto, agregue una comprobaci\u00f3n de l\u00edmite para evitar un desbordamiento de b\u00fafer en memcpy()."
          }
        ],
        "id": "CVE-2022-50131",
        "lastModified": "2026-08-04T10:18:05.643",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            },
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 7.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 1.8,
              "impactScore": 5.9,
              "source": "nvd@nist.gov",
              "type": "Primary"
            }
          ]
        },
        "published": "2025-06-18T11:15:42.920",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/3c0f8a59f2cc8841ee6653399a77f4f3e6e9a270"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/62ac2473553a00229e67bdf3cb023b62cf7f5a9a"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/6402116a7b5ec80fa40fd145a80c813019cd555f"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/66c8e816f2f2ca4a61b406503bd10bad1b35f72f"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "tags": [
              "Patch"
            ],
            "url": "https://git.kernel.org/stable/c/91443c669d280937968f0aa4edefa741cfe35314"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Modified",
        "weaknesses": [
          {
            "description": [
              {
                "lang": "en",
                "value": "CWE-787"
              }
            ],
            "source": "nvd@nist.gov",
            "type": "Primary"
          }
        ]
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-04T19:39:29+00:00",
      "cve": "CVE-2022-50131",
      "id": "CVE-2022-50131",
      "initial_release_date": "2022-01-01T00:00:00+00:00",
      "product_status:fixed": "321",
      "product_status:known_affected": "22",
      "product_status:known_not_affected": "134",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: HID: mcp2221: prevent a buffer overflow in mcp_smbus_write()",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2022/cve-2022-50131.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-11T16:51:48Z",
      "cve": "CVE-2022-50131",
      "id": "CVE-2022-50131",
      "initial_release_date": "2025-06-19T03:40:53Z",
      "product_status:known_affected": "344",
      "product_status:known_not_affected": "388",
      "product_status:recommended": "253",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2022-50131",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2022-50131.json",
      "version": "43"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…