Katalog CVE

CVE-2026-89583

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.26%

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

Streszczenie

W jądrze Linux funkcja eir_get_service_data() w module Bluetooth EIR zawiera błąd odczytu poza buforem (OOB read). Nieprawidłowe przeliczanie eir_len przy pomijaniu pól powoduje, że wskaźnik wykracza poza bufor le_per_adv_data[] i odczytuje dane z reszty struktury hci_conn. Poprawka przelicza eir_len od końca bufora w każdej iteracji.

Ocena ryzyka

Lokalny atakujący w zasięgu Bluetooth może wysłać spreparowane raporty reklamowe, powodując wyciek danych z pamięci jądra przez getsockopt(BT_ISO_BASE). Może to prowadzić do ujawnienia poufnych informacji lub destabilizacji systemu.

Rekomendacja

Zaktualizuj jądro Linux do wersji zawierającej poprawkę funkcji eir_get_service_data(). Ogranicz ekspozycję Bluetooth na urządzeniach przetwarzających dane wrażliwe do czasu wdrożenia aktualizacji.

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: eir: Fix OOB read in eir_get_service_data() eir_get_service_data() walks the advertising data for a Service Data field with a matching UUID. On a mismatch it advances: eir += dlen; eir_len -= dlen; eir_get_data() reports dlen as the field's data length, but the field spans dlen + 2 bytes once its length and type bytes count, and more when non-Service-Data fields were skipped to reach it. The pointer lands correctly on the next field. eir_len does not, and the shortfall compounds across fields until eir_get_data() reads the length and type bytes of a "field" past the end of the buffer. For an ISO broadcast sink that buffer is hcon->le_per_adv_data[], filled from the periodic advertising reports of a remote broadcaster. A PA payload packed with mismatching Service Data fields walks off the array into the rest of struct hci_conn. A drifted field that matches the BAA UUID puts those bytes in iso_pi(sk)->base, where user space reads them back with getsockopt(BT_ISO_BASE). Recompute eir_len from the end of the buffer each iteration.

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