CVE-2026-98582
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.
Read full descriptionShow less
This keeps malformed frames within the received frame boundary before CRC processing.
CVSS
NVD hasn't assigned a CVSS score to this CVE (common since the April 2026 policy change).
Exploitation probability (EPSS)
- Probability of exploitation in the next 30 days
- 0.21 %
- Percentile among all scored CVEs
- 11
- Score date
- 10/20/2026
EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).
Affected technologies (1)
⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.
References
Show 8 references
- https://git.kernel.org/stable/c/57919d0662d8856211b794140172e51ca389f23d
- https://git.kernel.org/stable/c/7b996cc06dda54c02a5aa607bda01109f0ac51e6
- https://git.kernel.org/stable/c/8934d2889ae16a7c77520e002398d0689c1ecea5
- https://git.kernel.org/stable/c/91be5161f37b0a2795ad6806d69be5fa74522e5c
- https://git.kernel.org/stable/c/a653c01ce447f10c36b901646888c0330363af4f
- https://git.kernel.org/stable/c/d0596ee6c4b928a5c288790522a7495ee867da72
- https://git.kernel.org/stable/c/d4008c3499dba7829bfe002edd99a8bff8ae3a7c
- https://git.kernel.org/stable/c/f526c218a149a30f110ce434ff17e033042404b8
Raw JSON (NVD)
Show
{
"id": "CVE-2026-98582",
"cveTags": [],
"metrics": {},
"affected": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"affectedData": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
"lessThan": "8934d2889ae16a7c77520e002398d0689c1ecea5",
"versionType": "git"
},
{
"status": "affected",
"version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
"lessThan": "d0596ee6c4b928a5c288790522a7495ee867da72",
"versionType": "git"
},
{
"status": "affected",
"version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
"lessThan": "f526c218a149a30f110ce434ff17e033042404b8",
"versionType": "git"
},
{
"status": "affected",
"version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
"lessThan": "d4008c3499dba7829bfe002edd99a8bff8ae3a7c",
"versionType": "git"
},
{
"status": "affected",
"version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
"lessThan": "91be5161f37b0a2795ad6806d69be5fa74522e5c",
"versionType": "git"
},
{
"status": "affected",
"version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
"lessThan": "57919d0662d8856211b794140172e51ca389f23d",
"versionType": "git"
},
{
"status": "affected",
"version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
"lessThan": "7b996cc06dda54c02a5aa607bda01109f0ac51e6",
"versionType": "git"
},
{
"status": "affected",
"version": "3096e25a3e40b73afd59e46f3bf8d84f919992a1",
"lessThan": "a653c01ce447f10c36b901646888c0330363af4f",
"versionType": "git"
}
],
"programFiles": [
"drivers/nfc/st21nfca/i2c.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "3.16"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "3.16",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver",
"lessThanOrEqual": "5.10.*"
},
{
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver",
"lessThanOrEqual": "5.15.*"
},
{
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver",
"lessThanOrEqual": "6.1.*"
},
{
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.12.112",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.55",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2.9",
"versionType": "semver",
"lessThanOrEqual": "7.2.*"
},
{
"status": "unaffected",
"version": "7.3",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/nfc/st21nfca/i2c.c"
],
"defaultStatus": "affected"
}
]
}
],
"published": "2026-10-18T16:17:10.743",
"references": [
{
"url": "https://git.kernel.org/stable/c/57919d0662d8856211b794140172e51ca389f23d",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/7b996cc06dda54c02a5aa607bda01109f0ac51e6",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/8934d2889ae16a7c77520e002398d0689c1ecea5",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/91be5161f37b0a2795ad6806d69be5fa74522e5c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/a653c01ce447f10c36b901646888c0330363af4f",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/d0596ee6c4b928a5c288790522a7495ee867da72",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/d4008c3499dba7829bfe002edd99a8bff8ae3a7c",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
},
{
"url": "https://git.kernel.org/stable/c/f526c218a149a30f110ce434ff17e033042404b8",
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"vulnStatus": "Received",
"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."
}
],
"lastModified": "2026-10-19T10:19:18.997",
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}