← Back to CVE List
CVE-2026-90089NVD
Vulnerability Summary
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.
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.
CVSS v3.1 Base Metrics — Score 7.1 (HIGH)
Attack VectorAdjacent
Attack ComplexityLow
Privileges RequiredNone
User InteractionNone
ScopeUnchanged
ConfidentialityLow
IntegrityNone
AvailabilityHigh
Affected & Patched Versions
- Linux Linux >= 998e447f443f138c90faa6ff3845082af419070e and < a644b8df94966b672ac656577df98bd01bc88393
- Linux Linux >= 998e447f443f138c90faa6ff3845082af419070e and < 22d419db7f9a01bea22cfcf66774d2b2fd4bb354
- Linux Linux >= 998e447f443f138c90faa6ff3845082af419070e and < 060fa7592bdc043a93b6b7870f5b8551206d315d
- Linux Linux >= 6.15
- Linux Linux a644b8df94966b672ac656577df98bd01bc88393
- Linux Linux 22d419db7f9a01bea22cfcf66774d2b2fd4bb354
- Linux Linux 060fa7592bdc043a93b6b7870f5b8551206d315d