CVE-2026-23747
NiskieCVSS 3.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 22 - wyżej niż 22% wszystkich znanych CVE
Streszczenie
W pakiecie Golioth Firmware SDK w wersjach od 0.10.0 do 0.22.0 (przed łatką 48f521b) występuje przepełnienie bufora na stosie w funkcjach pomocniczych Payload Utils. Funkcje golioth_payload_as_int() i golioth_payload_as_float() kopiują dane z sieci do stałych buforów na stosie za pomocą memcpy() z rozmiarem pochodzącym z payload_size, a jedyne sprawdzenia długości są chronione przez assert(), które w wersjach release są pomijane. Payloady większe niż 12 bajtów (int) lub 32 bajty (float) mogą przepełnić stos, prowadząc do awarii lub odmowy usługi.
Ocena ryzyka
Atakujący (serwer lub MITM) może wysłać złośliwy payload do LightDB State, powodując przepełnienie stosu i awarię urządzenia, co prowadzi do przerwania działania systemu IoT.
Rekomendacja
Należy natychmiast zaktualizować Golioth Firmware SDK do wersji 0.22.0 lub nowszej, która zawiera naprawę w commicie 48f521b. W przypadku braku możliwości aktualizacji, należy ograniczyć zaufanie do serwerów i zastosować dodatkowe mechanizmy walidacji danych.
Oryginalny opis (angielski, źródło NVD)
Golioth Firmware SDK version 0.10.0 prior to 0.22.0, fixed in commit 48f521b, contain a stack-based buffer overflow in Payload Utils. The golioth_payload_as_int() and golioth_payload_as_float() helpers copy network-supplied payload data into fixed-size stack buffers using memcpy() with a length derived from payload_size. The only length checks are guarded by assert(); in release builds, the asserts are compiled out and memcpy() may copy an unbounded payload_size. Payloads larger than 12 bytes (int) or 32 bytes (float) can overflow the stack, resulting in a crash/denial of service. This is reachable via LightDB State on_payload with a malicious server or MITM.

