Description
In the Linux kernel, the following vulnerability has been resolved:

nfc: llcp: bound the connect_sn TLV walk to the skb

Commit 27256cdb290e ("nfc: llcp: bound SNL TLV parsing to the skb and
add length checks") fixed the unbounded TLV walk in nfc_llcp_recv_snl(),
and commit d8bd2dedbde5 ("nfc: llcp: fix OOB read and u8 offset wrap in
TLV parsers") subsequently bounded nfc_llcp_parse_gb_tlv() and
nfc_llcp_parse_connection_tlv(). One sibling parser sharing the same
pattern remains unbounded: nfc_llcp_connect_sn().

nfc_llcp_connect_sn() walks a TLV list, reading a two-byte header
(type, length) followed by length bytes of value, without checking that
the two header bytes or the declared length stay within the buffer. It
returns a pointer to a service name of up to 255 bytes that may point
past the end of the skb; it is subsequently consumed by memcmp() in
nfc_llcp_sock_from_sn(). In addition tlv_array_len was computed as
"skb->len - LLCP_HEADER_SIZE" in size_t, so a CONNECT/CC frame shorter
than the LLCP header underflows to a huge length and the walk runs far
past the buffer.

nfc_llcp_connect_sn() is reachable from nfc_llcp_recv_connect() and
nfc_llcp_recv_cc(), i.e. from received CONNECT and CC PDUs. A nearby
NFC device can reach this without authentication; LLCP link activation
happens automatically after NFC-DEP, and the nfc_llcp_rx_skb()
dispatcher applies no minimum-length guard.

Walk the TLV list by pointer, bounded by skb_tail_pointer(skb), and
validate each declared length before use, matching the approach already
used for nfc_llcp_recv_snl(). Starting the walk at
&skb->data[LLCP_HEADER_SIZE] against the tail pointer also removes the
size_t underflow for short frames.

Found by 0sec automated security-research tooling (https://0sec.ai).
Published: 2026-09-04
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability occurs because the Linux kernel’s NFC LLCP module performs an unbounded walk of a Type‑Length‑Value (TLV) list in the function that parses CONNECT or CC PDUs. The code reads two‑byte headers and length fields without verifying that they stay within the packet buffer, which allows an attacker to craft a malicious packet that causes an out‑of‑bounds read. The exposed data can be used for information disclosure, representing a classic unchecked input validation flaw (CWE‑20).

Affected Systems

All Linux kernels that provide the NFC LLCP stack and lack the patches that bound the TLV walk are affected. The description does not specify exact releases, but any kernel prior to the inclusion of the commit changes that add length checks is vulnerable. The flaw is confined to the kernel component that handles LLCP data, regardless of distribution or hardware vendor.

Risk and Exploitability

An attacker only needs to send a malformed CONNECT or CC PDU to the target device; no authentication is required. The exploitation path is local to the NFC interface, making any NFC‑capable device a potential vector. While no CVSS or EPSS score is provided, the issue was discovered by automated security‑research tooling, indicating a realistic attack surface. Because the vulnerability leads to an out‑of‑bounds read, it can compromise confidentiality and integrity of kernel memory. The flaw is not listed in the CISA KEV catalog, but its severity remains high.

Generated by OpenCVE AI on September 4, 2026 at 21:42 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the commits that bound the TLV walk and add length checks (e.g., kernels released after the patch commits 27256cdb290e and d8bd2dedbde5).
  • If an update cannot be applied immediately, disable or block the NFC kernel module so that no external NFC devices can trigger the vulnerable parsing code.
  • Configure packet filtering or logging for NFCD so that abnormal CONNECT or CC PDUs are detected and quarantined as a temporary containment measure.

Generated by OpenCVE AI on September 4, 2026 at 21:42 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 04 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-125
CWE-20

Fri, 04 Sep 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: nfc: llcp: bound the connect_sn TLV walk to the skb Commit 27256cdb290e ("nfc: llcp: bound SNL TLV parsing to the skb and add length checks") fixed the unbounded TLV walk in nfc_llcp_recv_snl(), and commit d8bd2dedbde5 ("nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers") subsequently bounded nfc_llcp_parse_gb_tlv() and nfc_llcp_parse_connection_tlv(). One sibling parser sharing the same pattern remains unbounded: nfc_llcp_connect_sn(). nfc_llcp_connect_sn() walks a TLV list, reading a two-byte header (type, length) followed by length bytes of value, without checking that the two header bytes or the declared length stay within the buffer. It returns a pointer to a service name of up to 255 bytes that may point past the end of the skb; it is subsequently consumed by memcmp() in nfc_llcp_sock_from_sn(). In addition tlv_array_len was computed as "skb->len - LLCP_HEADER_SIZE" in size_t, so a CONNECT/CC frame shorter than the LLCP header underflows to a huge length and the walk runs far past the buffer. nfc_llcp_connect_sn() is reachable from nfc_llcp_recv_connect() and nfc_llcp_recv_cc(), i.e. from received CONNECT and CC PDUs. A nearby NFC device can reach this without authentication; LLCP link activation happens automatically after NFC-DEP, and the nfc_llcp_rx_skb() dispatcher applies no minimum-length guard. Walk the TLV list by pointer, bounded by skb_tail_pointer(skb), and validate each declared length before use, matching the approach already used for nfc_llcp_recv_snl(). Starting the walk at &skb->data[LLCP_HEADER_SIZE] against the tail pointer also removes the size_t underflow for short frames. Found by 0sec automated security-research tooling (https://0sec.ai).
Title nfc: llcp: bound the connect_sn TLV walk to the skb
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-04T15:13:14.271Z

Reserved: 2026-08-26T14:34:25.793Z

Link: CVE-2026-80800

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-04T16:18:06.797

Modified: 2026-09-04T16:18:06.797

Link: CVE-2026-80800

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T21:45:17Z

Weaknesses