W silniku JavaScript Jerryscript odkryto podatność typu stack overflow wynikającą z nieograniczonej rekurencji w funkcji new_opt(). Luka otrzymała ocenę CVSS 9.8, co czyni ją krytycznym zagrożeniem umożliwiającym zdalne wywołanie skutków bez uwierzytelnienia.
▸ Pokaż oryginał (EN)
Stack overflow vulnerability in Jerryscript before commit e1ce7dd7271288be8c0c8136eea9107df73a8ce2 on Oct 20, 2021 due to an unbounded recursive call to the new opt() function.
Podatność powstaje wskutek nieograniczonego, rekurencyjnego wywoływania funkcji new_opt() podczas przetwarzania określonych konstrukcji JavaScript. Każde kolejne wywołanie rekurencyjne zajmuje przestrzeń na stosie wywołań (call stack), co prowadzi do jego wyczerpania i wywołania błędu stack overflow. Brak odpowiedniego ograniczenia głębokości rekurencji (CWE-674) sprawia, że odpowiednio spreparowane dane wejściowe mogą w sposób powtarzalny i przewidywalny wywołać ten błąd.
Atakujący może doprowadzić do awarii procesu przetwarzającego JavaScript (denial of service), a w zależności od środowiska uruchomieniowego istnieje ryzyko naruszenia integralności i poufności danych — co odzwierciedla ocena CVSS wskazująca na wysokie oddziaływanie w obszarach C, I i A.
Należy zaktualizować Jerryscript do wersji zawierającej commit e1ce7dd7271288be8c0c8136eea9107df73a8ce2 lub nowszej. Szczegóły dostępne są w referencjach projektu na GitHub (issue #4779).
Jerryscript w wersjach poprzedzających commit e1ce7dd7271288be8c0c8136eea9107df73a8ce2 z dnia 20 października 2021 roku
Podatność dotyczy silnika JavaScript przeznaczonego głównie dla urządzeń IoT i systemów wbudowanych. Poprawka została wprowadzona commitem e1ce7dd7271288be8c0c8136eea9107df73a8ce2 w dniu 20 października 2021 roku, natomiast CVE zostało opublikowane 5 kwietnia 2022 roku.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HJerryscript
APPJerryscript< 2021-10-20
Powiązane podatności
Buffer Overflow w JerryScript 3.0 umożliwiający zdalne wykonanie kodu
Buffer overflow w JerryScript umożliwiający zdalne wykonanie kodu
RCE w JerryScript 2.3.0 via ecma_builtin_array_prototype_object_slice
Buffer overflow w JerryScript — fałszywe obiekty i nieograniczone ArrayBuffer
Heap-based Buffer Overflow w JerryScript — przepełnienie bufora przy parsowaniu pętli for