Katalog CVE

CVE-2026-10651

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.18%

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

Streszczenie

W stosie Bluetooth BR/EDR systemu Zephyr wykryto podatność polegającą na odczycie poza zakresem bufora w funkcji bt_sdp_parse_attribute(). Atakujący może wysłać specjalnie spreparowany rekord SDP o długości dokładnie 3 bajtów, co powoduje odczyt jednego bajtu poza koniec bufora. Problem występuje w wersjach 4.3.0 i 4.4.0, a został naprawiony przez dodanie odpowiedniego sprawdzenia długości.

Ocena ryzyka

Ryzyko dla organizacji jest ograniczone głównie do potencjalnej odmowy usługi (DoS) w przypadku, gdy rekord kończy się na granicy pamięci mapowanej lub gdy włączone są asercje (CONFIG_ASSERT=y). Atak nie pozwala na wyciek danych ani zdalne wykonanie kodu.

Rekomendacja

Zaleca się natychmiastową aktualizację systemu Zephyr do wersji zawierającej poprawkę (>=4.4.1 lub nowsza). Jeśli aktualizacja nie jest możliwa, należy wyłączyć obsługę SDP w stosie Bluetooth BR/EDR lub ograniczyć zaufane pary.

Inne podatności w Zephyr

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

bt_sdp_parse_attribute() in subsys/bluetooth/host/classic/sdp.c validated only that the SDP record buffer held the type-marker byte plus the 2-byte attribute ID (a check of buf->len < 3) but then read a fourth byte, the data-element descriptor (type), via net_buf_simple_pull_u8(). Because net_buf_simple_pull_u8() dereferences buf->data[0] before its only bounds guard (an __ASSERT_NO_MSG that compiles out when CONFIG_ASSERT is disabled, the production default), a record of exactly three bytes (0x09 followed by a 2-byte attribute ID) causes a one-byte read past the end of the logical buffer. The parser is reachable from inbound, remote-controlled data: a Bluetooth BR/EDR peer acting as an SDP server returns discovery-response records that are stored verbatim in the client receive buffer and parsed via the public bt_sdp_get_attr()/bt_sdp_has_attr()/bt_sdp_record_parse() helpers. The over-read is bounded to a single byte that is used only as an internal length selector and is never leaked to the attacker; subsequent length checks then reject the malformed record. Realistic impact is therefore limited to an edge-case denial of service (a fault only if the record ends exactly at a mapped-memory boundary, or a deterministic assert panic when CONFIG_ASSERT=y). Affects Zephyr v4.3.0 and v4.4.0; fixed by adding sizeof(type) to the length check.

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