---
id: CVE-2026-80802
title: 'nfc: fdp: bound the device-reported read length and fix an skb leak'
summary: |-
  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 …
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 <
    d9498ab9a78cb63d78dbe4f221d8cc6c91f285ee
  - >-
    Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 <
    1fc32327b927a6e2cde086f82575c29880844228
  - >-
    Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 <
    8d2c243b79854628ff076c38748c020042f02f57
  - >-
    Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 <
    fc3c2bd5b1ec6c7cbc8a50e32d9bcec114f25463
  - >-
    Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 <
    0d723090645b82c1cb27cfd7ebf81f0e7c96bcae
  - >-
    Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 <
    db7e464b350969c6ea8340de00d9796e5fd5123b
  - >-
    Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 <
    e5eec121f2c3bc4c7022613bedd9121a8aa4c949
  - >-
    Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 <
    1aa3fc769b0c45bd19f8dab1697084c2b3f6d706
  - >-
    Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 <
    7ad21dcfeb5181af0c3ee2608808c0c0a5283aa1
  - Linux 4.4
published: '2026-09-04'
updated: '2026-10-19'
sourceUpdated: '2026-10-19T08:43:55.498Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-80802'
references:
  - url: 'https://git.kernel.org/stable/c/d9498ab9a78cb63d78dbe4f221d8cc6c91f285ee'
  - url: 'https://git.kernel.org/stable/c/1fc32327b927a6e2cde086f82575c29880844228'
  - url: 'https://git.kernel.org/stable/c/8d2c243b79854628ff076c38748c020042f02f57'
  - url: 'https://git.kernel.org/stable/c/fc3c2bd5b1ec6c7cbc8a50e32d9bcec114f25463'
  - url: 'https://git.kernel.org/stable/c/0d723090645b82c1cb27cfd7ebf81f0e7c96bcae'
  - url: 'https://git.kernel.org/stable/c/db7e464b350969c6ea8340de00d9796e5fd5123b'
  - url: 'https://git.kernel.org/stable/c/e5eec121f2c3bc4c7022613bedd9121a8aa4c949'
  - url: 'https://git.kernel.org/stable/c/1aa3fc769b0c45bd19f8dab1697084c2b3f6d706'
  - url: 'https://git.kernel.org/stable/c/7ad21dcfeb5181af0c3ee2608808c0c0a5283aa1'
tags:
  - cve.org
epss: 0.00243
epssPercentile: 0.1438
ingestedAt: '2026-10-19T09:16:01.526Z'
---

## Overview

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.

## Affected

- `Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 < d9498ab9a78cb63d78dbe4f221d8cc6c91f285ee`
- `Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 < 1fc32327b927a6e2cde086f82575c29880844228`
- `Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 < 8d2c243b79854628ff076c38748c020042f02f57`
- `Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 < fc3c2bd5b1ec6c7cbc8a50e32d9bcec114f25463`
- `Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 < 0d723090645b82c1cb27cfd7ebf81f0e7c96bcae`
- `Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 < db7e464b350969c6ea8340de00d9796e5fd5123b`
- `Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 < e5eec121f2c3bc4c7022613bedd9121a8aa4c949`
- `Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 < 1aa3fc769b0c45bd19f8dab1697084c2b3f6d706`
- `Linux >= a06347c04c13e380afce0c9816df51f00b83faf1 < 7ad21dcfeb5181af0c3ee2608808c0c0a5283aa1`
- `Linux 4.4`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
