CVE-2025-37918
Severity CVSS v4.0:
Pending analysis
Type:
CWE-476
NULL Pointer Dereference
Publication date:
20/05/2025
Last modified:
17/11/2025
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
Bluetooth: btusb: avoid NULL pointer dereference in skb_dequeue()<br />
<br />
A NULL pointer dereference can occur in skb_dequeue() when processing a<br />
QCA firmware crash dump on WCN7851 (0489:e0f3).<br />
<br />
[ 93.672166] Bluetooth: hci0: ACL memdump size(589824)<br />
<br />
[ 93.672475] BUG: kernel NULL pointer dereference, address: 0000000000000008<br />
[ 93.672517] Workqueue: hci0 hci_devcd_rx [bluetooth]<br />
[ 93.672598] RIP: 0010:skb_dequeue+0x50/0x80<br />
<br />
The issue stems from handle_dump_pkt_qca() returning 0 even when a dump<br />
packet is successfully processed. This is because it incorrectly<br />
forwards the return value of hci_devcd_init() (which returns 0 on<br />
success). As a result, the caller (btusb_recv_acl_qca() or<br />
btusb_recv_evt_qca()) assumes the packet was not handled and passes it<br />
to hci_recv_frame(), leading to premature kfree() of the skb.<br />
<br />
Later, hci_devcd_rx() attempts to dequeue the same skb from the dump<br />
queue, resulting in a NULL pointer dereference.<br />
<br />
Fix this by:<br />
1. Making handle_dump_pkt_qca() return 0 on success and negative errno<br />
on failure, consistent with kernel conventions.<br />
2. Splitting dump packet detection into separate functions for ACL<br />
and event packets for better structure and readability.<br />
<br />
This ensures dump packets are properly identified and consumed, avoiding<br />
double handling and preventing NULL pointer access.
Impact
Base Score 3.x
5.50
Severity 3.x
MEDIUM
Vulnerable products and versions
| CPE | From | Up to |
|---|---|---|
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.4 (including) | 6.6.90 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (including) | 6.12.28 (excluding) |
| cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.13 (including) | 6.14.6 (excluding) |
| cpe:2.3:o:linux:linux_kernel:6.15:rc1:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.15:rc2:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.15:rc3:*:*:*:*:*:* | ||
| cpe:2.3:o:linux:linux_kernel:6.15:rc4:*:*:*:*:*:* |
To consult the complete list of CPE names with products and versions, see this page



