CVE-2026-98582 (GCVE-0-2026-98582)
Vulnerability from cvelistv5
Published
2026-10-18 15:18
Modified
2026-10-19 09:22
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: nfc: st21nfca: validate received frame size st21nfca_hci_i2c_repack() trims a received frame at its EOF marker before removing byte stuffing. It then assumes the truncated frame contains the LLC header and two CRC bytes, and it unconditionally reads the byte after an escape marker. A malformed frame can place EOF immediately after the start marker or can end its data portion with an escape marker. The former leaves too few bytes for check_crc(), while the latter makes the unstuffing loop read past the current skb length. Require the minimum framing bytes both before and after unstuffing. Use separate input and output cursors while removing byte stuffing, and reject an escape marker without its encoded byte. This keeps malformed frames within the received frame boundary before CRC processing.
Impacted products
Vendor Product Version
Linux Linux Version: 3096e25a3e40b73afd59e46f3bf8d84f919992a1
Version: 3096e25a3e40b73afd59e46f3bf8d84f919992a1
Version: 3096e25a3e40b73afd59e46f3bf8d84f919992a1
Version: 3096e25a3e40b73afd59e46f3bf8d84f919992a1
Version: 3096e25a3e40b73afd59e46f3bf8d84f919992a1
Version: 3096e25a3e40b73afd59e46f3bf8d84f919992a1
Version: 3096e25a3e40b73afd59e46f3bf8d84f919992a1
Version: 3096e25a3e40b73afd59e46f3bf8d84f919992a1
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/nfc/st21nfca/i2c.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "8934d2889ae16a7c77520e002398d0689c1ecea5",
              "status": "affected",
              "version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
              "versionType": "git"
            },
            {
              "lessThan": "d0596ee6c4b928a5c288790522a7495ee867da72",
              "status": "affected",
              "version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
              "versionType": "git"
            },
            {
              "lessThan": "f526c218a149a30f110ce434ff17e033042404b8",
              "status": "affected",
              "version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
              "versionType": "git"
            },
            {
              "lessThan": "d4008c3499dba7829bfe002edd99a8bff8ae3a7c",
              "status": "affected",
              "version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
              "versionType": "git"
            },
            {
              "lessThan": "91be5161f37b0a2795ad6806d69be5fa74522e5c",
              "status": "affected",
              "version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
              "versionType": "git"
            },
            {
              "lessThan": "57919d0662d8856211b794140172e51ca389f23d",
              "status": "affected",
              "version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
              "versionType": "git"
            },
            {
              "lessThan": "7b996cc06dda54c02a5aa607bda01109f0ac51e6",
              "status": "affected",
              "version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
              "versionType": "git"
            },
            {
              "lessThan": "a653c01ce447f10c36b901646888c0330363af4f",
              "status": "affected",
              "version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/nfc/st21nfca/i2c.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "3.16"
            },
            {
              "lessThan": "3.16",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.271",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.222",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.189",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.158",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.112",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.55",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.271",
                  "versionStartIncluding": "3.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.222",
                  "versionStartIncluding": "3.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.189",
                  "versionStartIncluding": "3.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.158",
                  "versionStartIncluding": "3.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.112",
                  "versionStartIncluding": "3.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.55",
                  "versionStartIncluding": "3.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.9",
                  "versionStartIncluding": "3.16",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "3.16",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnfc: st21nfca: validate received frame size\n\nst21nfca_hci_i2c_repack() trims a received frame at its EOF marker\nbefore removing byte stuffing.  It then assumes the truncated frame\ncontains the LLC header and two CRC bytes, and it unconditionally reads\nthe byte after an escape marker.\n\nA malformed frame can place EOF immediately after the start marker or can\nend its data portion with an escape marker.  The former leaves too few\nbytes for check_crc(), while the latter makes the unstuffing loop read past\nthe current skb length.\n\nRequire the minimum framing bytes both before and after unstuffing.  Use\nseparate input and output cursors while removing byte stuffing, and reject\nan escape marker without its encoded byte.  This keeps malformed frames\nwithin the received frame boundary before CRC processing."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T09:22:08.022Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/8934d2889ae16a7c77520e002398d0689c1ecea5"
        },
        {
          "url": "https://git.kernel.org/stable/c/d0596ee6c4b928a5c288790522a7495ee867da72"
        },
        {
          "url": "https://git.kernel.org/stable/c/f526c218a149a30f110ce434ff17e033042404b8"
        },
        {
          "url": "https://git.kernel.org/stable/c/d4008c3499dba7829bfe002edd99a8bff8ae3a7c"
        },
        {
          "url": "https://git.kernel.org/stable/c/91be5161f37b0a2795ad6806d69be5fa74522e5c"
        },
        {
          "url": "https://git.kernel.org/stable/c/57919d0662d8856211b794140172e51ca389f23d"
        },
        {
          "url": "https://git.kernel.org/stable/c/7b996cc06dda54c02a5aa607bda01109f0ac51e6"
        },
        {
          "url": "https://git.kernel.org/stable/c/a653c01ce447f10c36b901646888c0330363af4f"
        }
      ],
      "title": "nfc: st21nfca: validate received frame size",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98582",
    "datePublished": "2026-10-18T15:18:55.545Z",
    "dateReserved": "2026-09-25T10:25:14.358Z",
    "dateUpdated": "2026-10-19T09:22:08.022Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…