All vulnerabilities
CVE-2026-98481

Linux: nfc: port100: reject frames whose declared length exceeds the received data

Linux LinuxOperating systems
CVSS
NoneNot scored
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)0.21%Chance of exploitation activity in the next 30 days, higher than 10% of CVEs. Scored 23 Oct 2026FIRST EPSS
Fixed in0d482995f0cdd0302450aa300c684c642d8ab31fAlso 9e8df087826b9999d1b83b06f5d85675d5a69c9e, 144ad477c381e2c592b64898d04ab4ce03b32861 and 3 moreCVE List
Published18 Oct 2026Updated 19 Oct 2026CVE List

What fixes it

  • 0d482995f0cdd0302450aa300c684c642d8ab31fLinuxCVE List
  • 9e8df087826b9999d1b83b06f5d85675d5a69c9eLinuxCVE List
  • 144ad477c381e2c592b64898d04ab4ce03b32861LinuxCVE List
  • 14b1467cfc6630583650f33538174c5a1ec685abLinuxCVE List
  • 035056e07ea65be670284246d9bc62f2f00ff4a3LinuxCVE List
  • 092c6a605cbd6414ef499834c2e0da69c2c3388eLinuxCVE List

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Description

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

nfc: port100: reject frames whose declared length exceeds the received data

port100_recv_response() passes the URB transfer buffer to port100_rx_frame_is_valid(), which checksums le16_to_cpu(frame->datalen) bytes of frame->data. datalen is a 16-bit field supplied by the device and is never checked against the number of bytes actually received (urb->actual_length), so a device reporting a datalen larger than the received frame makes port100_data_checksum() read out of bounds past the transfer buffer.

Reject a response whose declared frame size does not fit the received length before validating it.

Found by 0sec (https://0sec.ai) using automated source analysis; the missing bound is evident from source. Compile-tested.

Text from CVE List

Affected versions 18

  • Linuxaffected: 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 before 0d482995f0cdd0302450aa300c684c642d8ab31fCVE List
  • Linuxaffected: 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 before 9e8df087826b9999d1b83b06f5d85675d5a69c9eCVE List
  • Linuxaffected: 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 before db66a30588630c7de30ef033f00daddef69f6ad9CVE List
  • Linuxaffected: 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 before 144ad477c381e2c592b64898d04ab4ce03b32861CVE List
  • Linuxaffected: 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 before e4da1452e10c6472a4bac48dc2f6a35fff1fcd69CVE List
  • Linuxaffected: 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 before 14b1467cfc6630583650f33538174c5a1ec685abCVE List
  • Linuxaffected: 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 before 035056e07ea65be670284246d9bc62f2f00ff4a3CVE List
  • Linuxaffected: 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 before 092c6a605cbd6414ef499834c2e0da69c2c3388eCVE List
  • Linuxaffected: 3.13CVE List
  • Linuxunaffected: all versions before 3.13CVE List
  • Linuxunaffected: 5.10.271 through 5.10.*CVE List
  • Linuxunaffected: 5.15.222 through 5.15.*CVE List
  • Linuxunaffected: 6.1.189 through 6.1.*CVE List
  • Linuxunaffected: 6.6.158 through 6.6.*CVE List
  • Linuxunaffected: 6.12.112 through 6.12.*CVE List
  • Linuxunaffected: 6.18.55 through 6.18.*CVE List
  • Linuxunaffected: 7.2.9 through 7.2.*CVE List
  • Linuxunaffected: 7.3CVE List

References 8