CVE-2025-37918CWE-476

CVE-2025-37918

High · published May 20, 2025

CVSS v3.1
8.8
EPSS
0%
Percentile
15.1
In the wild
Unconfirmed
What it is

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

Bluetooth: btusb: avoid NULL pointer dereference in skb_dequeue()

A NULL pointer dereference can occur in skb_dequeue() when processing a

QCA firmware crash dump on WCN7851 (0489:e0f3).

[ 93.672166] Bluetooth: hci0: ACL memdump size(589824)

[ 93.672475] BUG: kernel NULL pointer dereference, address: 0000000000000008

[ 93.672517] Workqueue: hci0 hci_devcd_rx [bluetooth]

[ 93.672598] RIP: 0010:skb_dequeue+0x50/0x80

The issue stems from handle_dump_pkt_qca() returning 0 even when a dump

packet is successfully processed. This is because it incorrectly

forwards the return value of hci_devcd_init() (which returns 0 on

success). As a result, the caller (btusb_recv_acl_qca() or

btusb_recv_evt_qca()) assumes the packet was not handled and passes it

to hci_recv_frame(), leading to premature kfree() of the skb.

Later, hci_devcd_rx() attempts to dequeue the same skb from the dump

queue, resulting in a NULL pointer dereference.

Fix this by:

1. Making handle_dump_pkt_qca() return 0 on success and negative errno

on failure, consistent with kernel conventions.

2. Splitting dump packet detection into separate functions for ACL

and event packets for better structure and readability.

This ensures dump packets are properly identified and consumed, avoiding

double handling and preventing NULL pointer access.

The record
Technical detail
CVSS v3.1
8.8 · HIGH
Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00247 · 15.1th percentile
Weakness
CWE-476 · NULL Pointer Dereference
Published
2025-05-20T20:15Z
Affected products (7)
ProductVersionsFixed in
linux/linux_kernel≥ 6.4, < 6.6.906.6.90
linux/linux_kernel≥ 6.7, < 6.12.286.12.28
linux/linux_kernel≥ 6.13, < 6.14.66.14.6
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
linux/linux_kernelall versions—
References (4)
EPSS history
Timeline
  • 20 MAY 15:21Z
    Bluetooth: btusb: avoid NULL pointer dereference in skb_dequeue()
    cvelistv5