CVE-2026-80823

nfc: st21nfca: validate ATR_REQ length against the received frame

N/A
Published: September 4, 2026 at 03:27 PM UTC
Updated: October 19, 2026 at 09:17 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
N/A
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: nfc: st21nfca: validate ATR_REQ length against the received frame st21nfca_tm_recv_atr_req() checks that the received ATR_REQ frame is at least ST21NFCA_ATR_REQ_MIN_SIZE and that the self-declared atr_req->length is at least sizeof(struct st21nfca_atr_req), but never checks that atr_req->length does not exceed the actual received length (skb->len). st21nfca_tm_send_atr_res() then trusts the declared length: gb_len = atr_req->length - sizeof(struct st21nfca_atr_req); ... memcpy(atr_res->gbi, atr_req->gbi, gb_len); so an RF peer that sends a short frame but sets atr_req->length larger than the frame makes gb_len exceed the general bytes actually present, and the memcpy reads out of bounds past the received skb. Those bytes are placed in the ATR_RES and sent back to the peer (kernel-memory disclosure to a proximity attacker); a larger declared length is an out-of-bounds read (DoS). Reject frames whose declared length exceeds the received length. The adjacent nfc_tm_activated() path in the same function already derives its general-bytes length from skb->len rather than the declared field. Found by 0sec (https://0sec.ai) using automated source analysis; the missing bound is evident from source. Compile-tested.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

1892bf844ea0261736bd5e75546fc996e9daeedf3.17
Vendor states this is fixed in 0f344944c506b4f02d2b098489f7268b438c369e (fixed)
Vendor states this is fixed in 2c1ad291f4cdc357f9527b688c6fda9c6ffa7890 (fixed)
Vendor states this is fixed in 304f5b414f4051d324b8c4a3ab0e79f7dc7e150e (fixed)
Vendor states this is fixed in 5cdcca5d62a66eda6b774110a44cba67bc1a8d1d (fixed)
Vendor states this is fixed in 785df00bb3ae3206674a43284eb06dac575b5c64 (fixed)
Vendor states this is fixed in 9635507fe82949e429b3cd938876a9917125b151 (fixed)
Vendor states this is fixed in bfcca5f42c9aa4eadef1e5fe7bb23783d7fcc96d (fixed)
Vendor states this is fixed in dd26d30f40c43ad9cfe2f25c6ea0ead1dd51d5aa (fixed)
Vendor states this is fixed in f33cecf69095c43be88567fef92b180b858f7369 (fixed)
Vendor states this is fixed in 3.17 (unaffected)
Vendor states this is fixed in 5.10.267 (unaffected)
Vendor states this is fixed in 5.15.218 (unaffected)
Vendor states this is fixed in 6.1.185 (unaffected)
Vendor states this is fixed in 6.12.106 (unaffected)
Vendor states this is fixed in 6.18.47 (unaffected)
Vendor states this is fixed in 6.6.154 (unaffected)
Vendor states this is fixed in 7.1.11 (unaffected)
Vendor states this is fixed in 7.2.1 (unaffected)
Vendor states this is fixed in 7.3 (unaffected)
Vendor states this is fixed in 7.3-rc1 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

Quick Info

StatusRECEIVED

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card