CVE-2026-98481 PUBLISHED

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

Assigner: Linux
Reserved: 25.09.2026 Published: 18.10.2026 Updated: 18.10.2026

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.

Product Status

Vendor Linux
Product Linux
Versions Default: unaffected
  • affected from 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 to 0d482995f0cdd0302450aa300c684c642d8ab31f (excl.)
  • affected from 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 to 9e8df087826b9999d1b83b06f5d85675d5a69c9e (excl.)
  • affected from 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 to db66a30588630c7de30ef033f00daddef69f6ad9 (excl.)
  • affected from 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 to 144ad477c381e2c592b64898d04ab4ce03b32861 (excl.)
  • affected from 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 to e4da1452e10c6472a4bac48dc2f6a35fff1fcd69 (excl.)
  • affected from 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 to 14b1467cfc6630583650f33538174c5a1ec685ab (excl.)
  • affected from 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 to 035056e07ea65be670284246d9bc62f2f00ff4a3 (excl.)
  • affected from 562d4d59b8a1d5f3ca75115d6ac10c7b7bc68c06 to 092c6a605cbd6414ef499834c2e0da69c2c3388e (excl.)
Vendor Linux
Product Linux
Versions Default: affected
  • Version 3.13 is affected
  • unaffected from 0 to 3.13 (excl.)
  • unaffected from 5.10.271 to 5.10.* (incl.)
  • unaffected from 5.15.222 to 5.15.* (incl.)
  • unaffected from 6.1.189 to 6.1.* (incl.)
  • unaffected from 6.6.158 to 6.6.* (incl.)
  • unaffected from 6.12.112 to 6.12.* (incl.)
  • unaffected from 6.18.55 to 6.18.* (incl.)
  • unaffected from 7.2.9 to 7.2.* (incl.)
  • unaffected from 7.3-rc5 to * (incl.)

References