Katalog CVE

CVE-2025-37918

WysokieCVSS 8.8
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.23%

Percentyl 14 - wyżej niż 14% wszystkich znanych CVE

Streszczenie

W sterowniku Bluetooth btusb w jądrze Linuxa wykryto podatność prowadzącą do dereferencji wskaźnika NULL w funkcji skb_dequeue() podczas przetwarzania zrzutu awaryjnego firmware QCA. Funkcja handle_dump_pkt_qca() zwracała 0 zamiast wartości ujemnej w przypadku błędu, co powodowało podwójne przetwarzanie pakietu i dereferencję NULL.

Ocena ryzyka

Organizacja narażona jest na ryzyko awarii systemu podczas obsługi zrzutów awaryjnych kontrolerów Bluetooth QCA, co może prowadzić do przerw w działaniu usług Bluetooth.

Rekomendacja

Należy zaktualizować jądro Linuxa do wersji zawierającej poprawkę, która zmienia zwracaną wartość handle_dump_pkt_qca() na 0 przy sukcesie i ujemną przy błędzie, oraz dzieli wykrywanie pakietów zrzutu na osobne funkcje.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS