W JerryScript w wersji 3.0 wykryto podatność typu buffer overflow w komponencie ecma_stringbuilder_append_raw, pozwalającą zdalnemu atakującemu na wykonanie dowolnego kodu. Krytyczny poziom CVSS 9.8 wynika z braku wymagań co do uwierzytelnienia i możliwości pełnego przejęcia kontroli nad systemem.
▸ Pokaż oryginał (EN)
Buffer Overflow vulnerability in JerryScript version 3.0, allows remote attackers to execute arbitrary code via ecma_stringbuilder_append_raw component at /jerry-core/ecma/base/ecma-helpers-string.c.
Podatność (CWE-120) polega na klasycznym przepełnieniu bufora w funkcji ecma_stringbuilder_append_raw znajdującej się w pliku /jerry-core/ecma/base/ecma-helpers-string.c. Atakujący może dostarczyć specjalnie spreparowane dane wejściowe, które powodują zapisanie danych poza granicami przydzielonego bufora pamięci. Prowadzi to do nadpisania sąsiadujących obszarów pamięci, co może zostać wykorzystane do przekierowania wykonania kodu.
Zdalny atakujący bez uwierzytelnienia może wykonać dowolny kod w kontekście procesu uruchamiającego silnik JerryScript, co potencjalnie prowadzi do pełnego przejęcia kontroli nad systemem, naruszenia poufności, integralności oraz dostępności danych.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się śledzenie oficjalnego repozytorium projektu JerryScript (GitHub) w celu uzyskania informacji o dostępnych poprawkach. Do czasu zastosowania patcha należy ograniczyć przetwarzanie niezaufanych danych wejściowych przez silnik JerryScript.
JerryScript w wersji 3.0
Podatność została zgłoszona przez badacza używającego konta GitHub 'Limesss', który opublikował dedykowane repozytorium z opisem podatności (https://github.com/Limesss/CVE-2023-36109). Problem jest również śledzony w oficjalnym issue trackerze projektu pod numerem #5080.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HJerryscript
APPJerryscript3.0
Powiązane podatności
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
Buffer overflow w Jerryscript — funkcja array slice