CVE-2026-88388
NieznaneStreszczenie
Espruino 2v29 (commit bffc6d0) zawiera podatność przepełnienia bufora na stosie w ścieżce obsługi śladu stosu błędów JavaScript w kompilacjach 64-bitowych. Zdalny atakujący może dostarczyć kod JavaScript wywołujący wyjątek, który trafia do jslPrintTokenLineMarker(), przekazując adres 4-bajtowej zmiennej int jako wskaźnik size_t. Funkcja jsvGetLineAndCol() wykonuje 8-bajtowy zapis, nadpisując sąsiednią pamięć stosu.
Ocena ryzyka
Możliwe jest zdalne wykonanie kodu lub zawieszenie usługi poprzez dostarczenie specjalnie spreparowanego kodu JavaScript. Podatność dotyczy tylko kompilacji 64-bitowych.
Rekomendacja
Zaktualizuj Espruino do wersji nowszej niż 2v29 (commit bffc6d0), która zawiera poprawkę. Do czasu aktualizacji unikaj uruchamiania niezaufanego kodu JavaScript w środowisku Espruino.
Inne podatności w Espruino
Zobacz wszystkie- CVE-2026-88389Nieznane
Espruino 2v29 (commit bffc6d0) zawiera podatność polegającą na dereferencji wskaźnika NULL w funkcji jslGetRawString() w pliku src/jslex.c. Specjalnie spreparowane dane wejściowe raw/binary mogą spowodować przekazanie przez lexer wskaźnika NULL do jsvLockAgain(), co w buildach RELEASE/NO_ASSERT prowadzi do zapisu przez wskaźnik NULL, powodując uszkodzenie pamięci i zakończenie działania aplikacji lub odmowę usługi.
- CVE-2026-88390Wysokie
W Espruino 2v29 (commit bffc6d0) funkcja jslGetTokenValueAsString() zawiera podatność na zapis poza zakresem (out-of-bounds write). Specjalnie spreparowany kod JavaScript z nadmiernie długim tokenem może spowodować zapis jednego bajtu poza bufor JsLex.token w buildach RELEASE/NO_ASSERT, co uszkadza sąsiedni wskaźnik tokenValue i prowadzi do korupcji pamięci, awarii aplikacji lub odmowy usługi.
Oryginalny opis (angielski, źródło NVD)
Espruino 2v29 (commit bffc6d0) contains a stack-based buffer overflow vulnerability in the JavaScript error stack-trace handling path on 64-bit builds. A remote attacker can supply JavaScript input that triggers an exception and reaches jslPrintTokenLineMarker(), which passes the address of a 4-byte int column variable to jsvGetLineAndCol() as a size_t pointer. jsvGetLineAndCol() performs an 8-byte write through the mismatched pointer, overwriting adjacent stack memory.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

