All of lore.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-cve-announce@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@kernel.org>
Subject: CVE-2026-80799: nfc: llcp: fix OOB read and u8 offset wrap in TLV parsers
Date: Fri,  4 Sep 2026 17:11:38 +0200	[thread overview]
Message-ID: <2026090408-CVE-2026-80799-ac42@gregkh> (raw)

From: Greg Kroah-Hartman <gregkh@kernel.org>

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.

The Linux kernel CVE team has assigned CVE-2026-80799 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.10.188 with commit 0be9de2ea01e8d52646e7310a7eef5459cf07ea8 and fixed in 5.10.267 with commit 2c1456fe09ab1a5a9fe1d8339ca6d509589b56e1
	Issue introduced in 5.15 with commit 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 and fixed in 5.15.218 with commit 7f6f3d087c67a4346189ef2c36481455bbc59a74
	Issue introduced in 5.15 with commit 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 and fixed in 6.1.185 with commit 9c47d667963542c3cf8e3007b7f10c0904d08238
	Issue introduced in 5.15 with commit 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 and fixed in 6.6.154 with commit a209334ed929941b20810c17c3a507445b0a7c85
	Issue introduced in 5.15 with commit 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 and fixed in 6.12.106 with commit 382eaa770335acf4f16a5a55524500f2bb4207df
	Issue introduced in 5.15 with commit 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 and fixed in 6.18.47 with commit 2d239590d1845a706304833d40dd6d4fec20ad88
	Issue introduced in 5.15 with commit 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 and fixed in 7.1.11 with commit e84cdfdc4a6c88e8b751144458f2e04e24415a28
	Issue introduced in 5.15 with commit 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 and fixed in 7.2.1 with commit 875285a165fd3b402de2ab3be0deb355d6f4caf5
	Issue introduced in 5.15 with commit 3df40eb3a2ea58bf404a38f15a7a2768e4762cb0 and fixed in 7.3-rc1 with commit 78b20c8eeacd2e44a2d8a4cb5316d3c521d90911
	Issue introduced in 4.19.291 with commit 1deacb5e031e289ca5636f2db4fcae6612c05d34
	Issue introduced in 5.4.251 with commit 66a1be74230bbe098e651766c9a0cf4038db8442

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-80799
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	net/nfc/llcp_commands.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/2c1456fe09ab1a5a9fe1d8339ca6d509589b56e1
	https://git.kernel.org/stable/c/7f6f3d087c67a4346189ef2c36481455bbc59a74
	https://git.kernel.org/stable/c/9c47d667963542c3cf8e3007b7f10c0904d08238
	https://git.kernel.org/stable/c/a209334ed929941b20810c17c3a507445b0a7c85
	https://git.kernel.org/stable/c/382eaa770335acf4f16a5a55524500f2bb4207df
	https://git.kernel.org/stable/c/2d239590d1845a706304833d40dd6d4fec20ad88
	https://git.kernel.org/stable/c/e84cdfdc4a6c88e8b751144458f2e04e24415a28
	https://git.kernel.org/stable/c/875285a165fd3b402de2ab3be0deb355d6f4caf5
	https://git.kernel.org/stable/c/78b20c8eeacd2e44a2d8a4cb5316d3c521d90911

                 reply	other threads:[~2026-09-04 15:20 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=2026090408-CVE-2026-80799-ac42@gregkh \
    --to=gregkh@linuxfoundation.org \
    --cc=cve@kernel.org \
    --cc=gregkh@kernel.org \
    --cc=linux-cve-announce@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.