KernelScan.io

HIGH Introduced in 4.4

nfc ReadLength Overflow

CVE-2026-80802

CVSS 7.3 / 10.0 KernelScan AI

CVSS:3.1/AV:P/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: fdp: bound the device-reported read length and fix an skb leak fdp_nci_i2c_read() takes the next packet length from two device-supplied bytes and never validates it. The value is a u16 used as the i2c_master_recv() count into a 261-byte on-stack buffer: a malicious, counterfeit or malfunctioning controller (or an i2c bus interposer) can drive it far past the buffer for a stack out-of-bounds write that clobbers the canary and return address, or below the minimum frame size (directly, or by truncating the computed sum) so the header/LRC strip and the next length read run past a short receive. Reject a length outside [FDP_NCI_I2C_MIN_PAYLOAD, FDP_NCI_I2C_MAX_PAYLOAD], as a corrupted packet already is, and force resynchronization. The same loop allocates one data skb per iteration and assumes a length packet followed by a data packet; a device that sends two data packets in one call leaks the first skb when the second allocation overwrites it. Free a previously allocated skb before allocating the next.

02

Engine v0.6.0

Risk summary

The Intel Fields Peak NFC driver trusts a device-supplied packet length without bounds checking, allowing a malicious or malfunctioning NFC controller to trigger a stack buffer overflow via the I2C bus. Exploitation requires physical access to the I2C bus or NFC controller hardware, limiting the attack to scenarios where an attacker can replace or interpose on the NFC controller. Impact ranges from kernel crash to potential code execution in kernel context.

Affecteddrivers/nfc/fdp/i2c.c (Intel Fields Peak NFC driver)

Vulnerability analysis

The NFC driver reads a packet length from the connected controller over I2C without validating it against the size of the receiving stack buffer. A malicious, counterfeit, or malfunctioning controller can supply an oversized length, causing the driver to write far past the buffer and overwrite the stack canary and return address, or supply a length below the minimum frame size so that subsequent reads run past a short receive. The fix bounds the device-reported length to a valid range and forces resynchronization when it falls outside, treating an out-of-range value as a corrupted packet. A secondary issue where a duplicate data packet causes a previously allocated network buffer to be leaked is also fixed by freeing the old buffer before allocating a new one. Reaching this code requires physical access to the I2C bus or the NFC controller itself — through a counterfeit device, a bus interposer, or malfunctioning hardware — and the Intel Fields Peak NFC driver must be loaded.

03

BranchIntroducedFixed inPatch commit
6.124.46.12.1060d723090645b
5.154.45.15.2181fc32327b927
6.64.46.6.154fc3c2bd5b1ec
7.24.47.2.11aa3fc769b0c
mainline4.47.3-rc17ad21dcfeb51
5.104.45.10.267d9498ab9a78c
6.184.46.18.47db7e464b3509
7.14.47.1.11e5eec121f2c3
6.14.46.1.1858d2c243b7985
cip/5.104.45.10.268-cip77d9498ab9a78c
cip/5.10-rt4.45.10.268-cip77-rt34d9498ab9a78c
cip/6.14.46.1.187-cip608d2c243b7985
cip/6.124.46.12.108-cip310d723090645b