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
Affected Products
Linux