Katalog CVE

CVE-2026-98632

Niskie ryzyko· EPSS 6%
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.17%

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

Streszczenie

W podsystemie Bluetooth mgmt jądra Linux funkcja send_cancel() usuwa oczekujące obiekty mesh_tx z listy hdev->mesh_pending i zwalnia je przez mesh_send_complete(), ale jeśli transmisja mesh została już zakolejkowana przez mesh_next(), wpis zachowuje surowy wskaźnik do mesh_tx. Późniejsze przetwarzanie przez hci_cmd_sync_work powoduje użycie zwolnionego wskaźnika (use-after-free).

Ocena ryzyka

Może prowadzić do uszkodzenia pamięci jądra, awarii systemu lub potencjalnego wykonania kodu przez lokalnego atakującego.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę wywołującą hci_cmd_sync_dequeue() dla mesh_send_sync przed zakończeniem oraz zapewniającą postęp kolejki po anulowaniu.

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: mgmt: Dequeue pending mesh_send_sync entries on cancel In send_cancel(), pending mesh_tx objects are removed from the hdev->mesh_pending list and freed via mesh_send_complete(). However, if a mesh transmission was already queued onto hdev->cmd_sync_work_list via mesh_next(), the queued entry retains a raw pointer to mesh_tx. When hci_cmd_sync_work later processes the entry, it attempts to execute mesh_send_sync and its destroy callback mesh_send_start_complete using the already freed mesh_tx pointer, leading to a use-after-free. Fix this by invoking hci_cmd_sync_dequeue() for mesh_send_sync on the target mesh_tx before completing it. If the entry is found and dequeued, its destroy callback will complete and free the object; otherwise, mesh_send_complete() is called directly. Additionally, ensure the transmission queue advances after cancellation or errors. In mesh_send_start_complete(), call mesh_next() on error unless err is -ECANCELED, because hci_cmd_sync_dequeue() holds hdev->cmd_sync_work_lock and calling mesh_next() synchronously would deadlock. Instead, advance the queue in send_cancel() once the lock is released and if no transmission is in progress.

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