KernelScan.io

HIGH Introduced in 6.15

bluetooth FwDumpHdr OOB

CVE-2026-90089

CVSS 7.1 / 10.0 NVD

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

KernelScan AI7.1HIGH

01

In the Linux kernel, the following vulnerability has been resolved: Bluetooth: btnxpuart: Validate the FW dump header length nxp_process_fw_dump() pulls the ACL header off the frame and then reads seq_num and buf_len from a struct nxp_fw_dump_hdr placed at skb->data, without checking that the ACL payload is long enough to contain it. h4_recv_buf() collects HCI_ACL_HDR_SIZE bytes of header followed by the number of payload bytes named in that header, so skb->len is 4 + dlen with dlen supplied by the controller and possibly smaller than the 8 byte dump header, or zero. A short frame with connection handle 0xfff therefore reads both fields from beyond the received data. Beyond the read itself, buf_len is what terminates a dump: a value of zero makes the driver call hci_devcd_complete() and reset the controller, so a truncated frame can end a dump early. Use skb_pull_data() to validate and pull the FW dump header before accessing its fields. Warn and reject the chunk if the header is truncated.

02

Engine v0.6.0

Risk summary

A Bluetooth controller (or an attacker spoofing one on the adjacent link) can send a short ACL frame with connection handle 0xfff that causes the NXP UART driver to read an 8-byte firmware-dump header from beyond the received payload. The over-read can leak kernel memory and, because a zero-length field prematurely terminates a firmware dump and resets the controller, also enables a denial of service. Any device using this driver with Bluetooth enabled is at risk.

Affecteddrivers/bluetooth/btnxpuart.c (Bluetooth btnxpuart driver)

Vulnerability analysis

The NXP UART Bluetooth driver processes firmware-dump ACL frames by reading the dump header directly from the received payload without first checking that the payload is long enough to contain it. A short or zero-length frame with the special dump connection handle therefore causes the driver to read critical header values from beyond the actual data. The fix validates the header length before accessing it, warning and discarding any chunk whose payload is too short to hold the header. The vulnerable path is reached over the Bluetooth link from a paired or spoofed controller, so any system with the btnxpuart driver and Bluetooth enabled is exposed; no special privileges are needed beyond proximity to the Bluetooth interface.

03

BranchIntroducedFixed inPatch commit
7.26.157.2.622d419db7f9a
mainline6.157.3-rc1060fa7592bdc
6.186.156.18.52a644b8df9496