KernelScan.io

HIGH Introduced in 3.4

nfc TargetList OOB

CVE-2026-80795

CVSS 8.8 / 10.0 KernelScan AI

CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

01

In the Linux kernel, the following vulnerability has been resolved: nfc: nci: fix out-of-bounds write in nci_target_auto_activated() nci_target_auto_activated() appends a target to the fixed-size array ndev->targets[NCI_MAX_DISCOVERED_TARGETS] and increments ndev->n_targets without first checking the array is full; unlike its sibling nci_add_new_target(), which bails out when n_targets already equals NCI_MAX_DISCOVERED_TARGETS. ndev->n_targets is only cleared by nci_clear_target_list(), so an NFCC that repeatedly re-runs discovery (RF_DISCOVER_RSP, which re-enters NCI_DISCOVERY without clearing the target list) and reports an auto-activated target (RF_INTF_ACTIVATED_NTF) drives n_targets past the limit. The append then writes a struct nfc_target past the end of the array (a slab out-of-bounds write), and nfc_targets_found() goes on to walk the array with the inflated count: BUG: KASAN: slab-out-of-bounds in nci_add_new_protocol+0x94/0x2ac [nci] Write of size 2 at addr ffff0000c7299a18 by task kworker/u8:0/12 Workqueue: nfc0_nci_rx_wq nci_rx_work [nci] Call trace: nci_add_new_protocol+0x94/0x2ac [nci] nci_ntf_packet+0xddc/0x11a0 [nci] nci_rx_work+0x15c/0x1e0 [nci] process_one_work+0x2dc/0x500 worker_thread+0x240/0x460 kthread+0x1c0/0x1d0 ret_from_fork+0x10/0x20 The buggy address belongs to the cache kmalloc-2k of size 2048 The buggy address is located 1024 bytes to the right of allocated 1560-byte region [ffff0000c7299000, ffff0000c7299618) Guard nci_target_auto_activated() with the same check used by nci_add_new_target().

02

Engine v0.6.0

Risk summary

A missing bounds check in the NFC NCI subsystem allows a nearby NFC device to overflow a fixed-size kernel target array by repeatedly triggering discovery and auto-activation. This produces a slab out-of-bounds write in kernel memory, which can corrupt adjacent heap objects and potentially lead to code execution or a kernel crash. No privileges on the target system are required; the attacker only needs NFC proximity to the vulnerable device.

Affectednet/nfc/nci/ntf.c (nci)

Vulnerability analysis

When an NFC controller reports a target as auto-activated, the handler appends it to a fixed-size array of discovered targets without first checking whether that array is full. A sibling function that handles manually discovered targets already performs this check, but the auto-activation path omits it. By repeatedly triggering discovery cycles and auto-activation notifications, a nearby NFC device can drive the target count past the array limit, causing a struct to be written past the end of the slab allocation. The fix adds the same bounds check already used by the sibling function, returning early when the target list is full. The vulnerability is reachable from NFC proximity: an attacker with an NFC device or tag within range of the target system can trigger it without any local account or privileges, provided the system has an NFC controller and the NCI stack is active.

03

BranchIntroducedFixed inPatch commit
5.103.45.10.2670dc59de0075f
5.153.45.15.21894530ffabfca
6.13.46.1.185afd8605fb43b
6.123.46.12.10650e87e1c0e18
6.183.46.18.472f08dbce3b37
6.63.46.6.15424761d3a5f69
7.13.47.1.11d7083f41c21b
7.23.47.2.1129032c0616d
mainline3.47.3-rc1ac200079db50