CVE-2026-90223

Source
https://cve.org/CVERecord?id=CVE-2026-90223
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90223.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-90223
Downstream
Published
2026-09-17T16:07:33Z
Modified
2026-09-18T03:48:36Z
Summary
nfc: llcp: bound SNL TLV parsing to the skb and add length checks
Details

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

nfc: llcp: bound SNL TLV parsing to the skb and add length checks

nfc_llcp_recv_snl() walked the SNL TLV list using a u16 offset/length pair derived from skb->len, without bounding reads to the actual skb data. Three problems followed:

  • For a short frame (skb->len < LLCP_HEADER_SIZE), tlv_len underflowed.
  • The per-TLV header (type, length) was read without checking that two bytes remained.
  • A declared TLV length could run past the end of the buffer, and an SDREQ with length == 0 made "service_name_len = length - 1" underflow (size_t), driving an out-of-bounds read in the following strncmp() / nfc_llcp_sock_from_sn(). The SDRES case likewise read tlv[2]/tlv[3] without a length check.

A nearby NFC device can reach this without authentication; LLCP link activation happens automatically after NFC-DEP.

Walk the TLV list by pointer, bounded by skb_tail_pointer() over the linear skb data, and validate each TLV declared length before use. Add explicit length checks for SDREQ (>= 1) and SDRES (exactly 2).

Found by 0sec automated security-research tooling (https://0sec.ai).

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/90xxx/CVE-2026-90223.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
19cfe5843e86cc95542d9d875c9386e197956d75
Fixed
88b36d36e12c9ba76decdb580d9c1907c084e587
Fixed
587fc2a5a35b41883b22b8f808fe5d345208914b
Fixed
f04ac9bf2379f3e2470c400c235eb12f74891bef
Fixed
02030f95820c42431280f4f945ff34247fb840ff
Fixed
99fdb5c2522f365efa199d0117b641e35097041e
Fixed
749a9048bf51a668ec3ab6c0392ba32325607281
Fixed
eeb16fb24cfe67947b832fd9ada5f488afc72579
Fixed
f4c7f37f0ab990952539dc68d931d65c3657600a

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90223.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
3.8.0
Fixed
5.10.270
Type
ECOSYSTEM
Events
Introduced
5.11.0
Fixed
5.15.221
Type
ECOSYSTEM
Events
Introduced
5.16.0
Fixed
6.1.188
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.6.157
Type
ECOSYSTEM
Events
Introduced
6.7.0
Fixed
6.12.110
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.52
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.2.6

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-90223.json"