W bibliotece Cesanta MJS v2.20.0 wykryto podatność klasy function pointer hijacking w funkcji mjs_get_ptr(), umożliwiającą wykonanie dowolnego kodu. Podatność uzyskała ocenę CVSS 9.8 (CRITICAL) i nie wymaga żadnego uwierzytelnienia ani interakcji użytkownika.
▸ Pokaż oryginał (EN)
Cesanta mjs v2.20.0 was discovered to contain a function pointer hijacking vulnerability via the function mjs_get_ptr(). This vulnerability allows attackers to execute arbitrary code via a crafted input.
Atakujący może dostarczyć spreparowane dane wejściowe (crafted input) do funkcji mjs_get_ptr(), która nieprawidłowo obsługuje wskaźniki funkcji — jest to przypadek podatności CWE-787 (out-of-bounds write / nieprawidłowy zapis w pamięci). Poprzez manipulację wskaźnikiem funkcji atakujący może przekierować przepływ wykonania programu na kontrolowany przez siebie kod. Podatność jest dostępna zdalnie, bez uwierzytelnienia i bez wymagania jakiejkolwiek akcji ze strony ofiary.
Skuteczne wykorzystanie podatności pozwala atakującemu na wykonanie dowolnego kodu (RCE) w kontekście procesu korzystającego z biblioteki MJS, co może 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 repozytorium GitHub projektu Cesanta MJS pod adresem https://github.com/cesanta/mjs/issues/250 w celu uzyskania informacji o dostępnych poprawkach oraz aktualizację biblioteki do wersji zawierającej fix.
Cesanta MJS v2.20.0
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HCesanta Mjs
APPCesanta2.20.0
Powiązane podatności
Cesanta MJS: out-of-bounds read w funkcji getprop_builtin_foreign
An issue in Cesanta mjs 2.20.0 allows a remote attacker to cause a denial of service via the mjs_do_gc functio...
An Out of Bounds Write in Cesanta mjs 2.20.0 allows a remote attacker to cause a denial of service via the mjs...
An issue in Cesanta mjs 2.20.0 allows a remote attacker to cause a denial of service via the mjs+0x4ec508 comp...
An issue in Cesanta mjs 2.20.0 allows a remote attacker to cause a denial of service via the mjs_getretvalpos ...