← Back to CVE Explorer

CVE-2026-98481

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: nfc: port100: reject frames whose declared length exceeds the received data port100_recv_response() passes the URB transfer buffer to port100_rx_frame_is_valid(), which checksums le16_to_cpu(frame->datalen) bytes of frame->data. datalen is a 16-bit field supplied by the device and is never checked against the number of bytes actually received (urb->actual_length), so a device reporting a datalen larger than the received frame makes port100_data_checksum() read out of bounds past the transfer buffer. Reject a response whose declared frame size does not fit the received length before validating it. Found by 0sec (https://0sec.ai) using automated source analysis; the missing bound is evident from source. Compile-tested.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-18 16:16:58.697000
Last modified
2026-10-19 10:18:59.333000
View original CVE JSON
{
  "id": "CVE-2026-98481",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-10-18T16:16:58.697",
  "lastModified": "2026-10-19T10:18:59.333",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfc: port100: reject frames whose declared length exceeds the received data\n\nport100_recv_response() passes the URB transfer buffer to\nport100_rx_frame_is_valid(), which checksums le16_to_cpu(frame->datalen)\nbytes of frame->data. datalen is a 16-bit field supplied by the device\nand is never checked against the number of bytes actually received\n(urb->actual_length), so a device reporting a datalen larger than the\nreceived frame makes port100_data_checksum() read out of bounds past the\ntransfer buffer.\n\nReject a response whose declared frame size does not fit the received\nlength before validating it.\n\nFound by 0sec (https://0sec.ai) using automated source analysis; the\nmissing bound is evident from source. Compile-tested."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/nfc/port100.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06",
              "lessThan": "0d482995f0cdd0302450aa300c684c642d8ab31f",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06",
              "lessThan": "9e8df087826b9999d1b83b06f5d85675d5a69c9e",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06",
              "lessThan": "db66a30588630c7de30ef033f00daddef69f6ad9",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06",
              "lessThan": "144ad477c381e2c592b64898d04ab4ce03b32861",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06",
              "lessThan": "e4da1452e10c6472a4bac48dc2f6a35fff1fcd69",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06",
              "lessThan": "14b1467cfc6630583650f33538174c5a1ec685ab",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06",
              "lessThan": "035056e07ea65be670284246d9bc62f2f00ff4a3",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06",
              "lessThan": "092c6a605cbd6414ef499834c2e0da69c2c3388e",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/nfc/port100.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "3.13",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "3.13",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.10.271",
              "lessThanOrEqual": "5.10.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "5.15.222",
              "lessThanOrEqual": "5.15.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.1.189",
              "lessThanOrEqual": "6.1.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.158",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.112",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.55",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2.9",
              "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/035056e07ea65be670284246d9bc62f2f00ff4a3",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/092c6a605cbd6414ef499834c2e0da69c2c3388e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/0d482995f0cdd0302450aa300c684c642d8ab31f",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/144ad477c381e2c592b64898d04ab4ce03b32861",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/14b1467cfc6630583650f33538174c5a1ec685ab",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/9e8df087826b9999d1b83b06f5d85675d5a69c9e",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/db66a30588630c7de30ef033f00daddef69f6ad9",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/e4da1452e10c6472a4bac48dc2f6a35fff1fcd69",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}