PT-2026-85639 · Linux · Linux

CVE-2026-80798

·

Published

2026-09-04

·

Updated

2026-09-04

None

No severity ratings or metrics are available. When they are, we'll update the corresponding info on the page.
In the Linux kernel, the following vulnerability has been resolved:
nfc: llcp: reject PDUs shorter than the LLCP header
Every LLCP PDU begins with a two-byte header (DSAP/SSAP + PTYPE), but the receive path never checked that a frame is at least LLCP HEADER SIZE bytes before parsing it.
nfc llcp rx skb() reads the header via nfc llcp ptype()/nfc llcp dsap()/ nfc llcp ssap(), which dereference pdu->data[0] and pdu->data[1], and a CONNECT or CC PDU then computes
tlv array len = skb->len - LLCP HEADER SIZE;
as a size t and hands it to the TLV walk. When the frame is shorter than the header the subtraction wraps to a huge value and the walk runs far past the buffer, an out-of-bounds read.
A nearby NFC device can reach this without authentication; LLCP link activation happens automatically after NFC-DEP.
Guard the common receive choke point nfc llcp recv(), shared by both the target (nfc llcp data received()) and initiator (nfc llcp recv()) paths, so a short skb is dropped before the rx work worker parses it. Use pskb may pull() rather than a skb->len test so the two header bytes are guaranteed to sit in the skb linear area even for a non-linear skb, matching how the sibling NCI and HCI receive paths validate their headers.
Reproduced with a KFENCE out-of-bounds read via /dev/virtual nci on linux-next.
Found by 0sec automated security-research tooling (https://0sec.ai).
Found an issue in the description? Have something to add? Feel free to write us 👾

Related Identifiers

CVE-2026-80798

Affected Products

Linux