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

nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers

nfc_llcp_parse_gb_tlv() and nfc_llcp_parse_connection_tlv() contain
three related bugs in their TLV parsing loops:

1. 'offset' is declared u8 but tlv_array_len is u16. When TLV data
advances offset past 255 it silently wraps to zero, causing
infinite loops or double-processing of buffer data.

2. Before reading tlv[0] (type) and tlv[1] (length) there is no
check that offset+2 <= tlv_array_len. A truncated TLV causes
an OOB read of one byte past the buffer end.

3. After reading the length field, the value bytes are accessed
without checking offset+2+length <= tlv_array_len. A crafted
length=0xFF on a short buffer causes up to 255 bytes of OOB
read past the buffer end.

Both functions are reachable without authentication via
nfc_llcp_set_remote_gb() which feeds remote LLCP general bytes
directly into nfc_llcp_parse_gb_tlv() with no additional
validation.

Fix all three issues by widening offset from u8 to u16 and adding
bounds checks for both the TLV header and value field before each
access.
Published: 2026-09-04
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The Linux kernel contains errors in the TLV parsing loops of nfc_llcp_parse_gb_tlv and nfc_llcp_parse_connection_tlv. Because the loop offset is a u8 while the array length is u16, the offset silently wraps after 255 bytes, causing either an infinite loop or duplicate processing of data. Additionally, the code reads TLV header fields and payload values without verifying that the offsets stay within the bounds of the buffer, which allows an attacker to trigger out‑of‑bounds reads when the payload length is set to 0xFF or the TLV is truncated. These errors can lead to kernel memory corruption, information disclosure, and potentially execute arbitrary code within kernel mode.

Affected Systems

Both affected functions are reachable from nfc_llcp_set_remote_gb, which accepts data from remote NFC devices without authentication. The vulnerability applies to all Linux kernel builds that include the NFC LLCP stack and have not applied the recent fix. No specific version range is quoted, so any kernel that incorporates the unpatched code is a target.

Risk and Exploitability

The CVSS score is not publicly provided, but the nature of the flaw allows a remote attacker controlling an NFC device to send crafted LLCP packets that target kernel memory. The lack of authentication on nfc_llcp_set_remote_gb gives the attacker an easy attack vector, and the absence of a KEV listing does not reduce the intrinsic severity. An exploit that reads or writes beyond bounds could crash the kernel or grant elevated privileges, making the risk high and exploitation likely if the attacker can present a malicious NFC payload.

Generated by OpenCVE AI on September 4, 2026 at 17:41 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Patch the kernel with the committed NFC LLCP TLV parsing fix (commits 2c1456fe09ab1a5a9fe1d8339ca6d509589b56e1 and related commits) or upgrade to a distribution kernel that includes the patch.
  • If an immediate kernel update cannot be performed, disable the NFC LLCP subsystem by unloading the llcp kernel module or using a boot parameter such as 'nfc_llcp_options=0' to prevent remote LLCP traffic.
  • Continuously monitor vendor advisories and apply updates as soon as they are available; meanwhile, ensure that no legacy NFC devices are allowed to communicate with the system.

Generated by OpenCVE AI on September 4, 2026 at 17:41 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

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

Type Values Removed Values Added
Weaknesses CWE-119
CWE-200

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: fix OOB read and u8 offset wrap in TLV parsers nfc_llcp_parse_gb_tlv() and nfc_llcp_parse_connection_tlv() contain three related bugs in their TLV parsing loops: 1. 'offset' is declared u8 but tlv_array_len is u16. When TLV data advances offset past 255 it silently wraps to zero, causing infinite loops or double-processing of buffer data. 2. Before reading tlv[0] (type) and tlv[1] (length) there is no check that offset+2 <= tlv_array_len. A truncated TLV causes an OOB read of one byte past the buffer end. 3. After reading the length field, the value bytes are accessed without checking offset+2+length <= tlv_array_len. A crafted length=0xFF on a short buffer causes up to 255 bytes of OOB read past the buffer end. Both functions are reachable without authentication via nfc_llcp_set_remote_gb() which feeds remote LLCP general bytes directly into nfc_llcp_parse_gb_tlv() with no additional validation. Fix all three issues by widening offset from u8 to u16 and adding bounds checks for both the TLV header and value field before each access.
Title nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers
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:13.311Z

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

Link: CVE-2026-80799

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

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

Link: CVE-2026-80799

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T19:15:07Z

Weaknesses
  • CWE-119

    Improper Restriction of Operations within the Bounds of a Memory Buffer

  • CWE-200

    Exposure of Sensitive Information to an Unauthorized Actor