Moduł safe-eval, reklamowany jako bezpieczniejsza alternatywa dla funkcji eval w Node.js, zawiera podatność umożliwiającą ucieczkę z mechanizmu sandbox. Atakujący może poprzez niesanitizowane dane wejściowe uzyskać dostęp do całej standardowej biblioteki Node.js, co czyni ochronę modułu całkowicie nieskuteczną.
▸ Pokaż oryginał (EN)
The safe-eval module describes itself as a safer version of eval. By accessing the object constructors, un-sanitized user input can access the entire standard library and effectively break out of the sandbox.
Podatność polega na możliwości dostępu do konstruktorów obiektów JavaScript przez niesanitizowane dane wejściowe użytkownika. Poprzez łańcuch odwołań do właściwości konstruktorów możliwe jest wydostanie się poza izolowane środowisko sandbox. W ten sposób kod przekazany przez użytkownika uzyskuje dostęp do pełnej standardowej biblioteki Node.js, omijając wszelkie mechanizmy ograniczeń nałożone przez moduł.
Atakujący może całkowicie przełamać izolację sandbox i wykonać dowolny kod z uprawnieniami procesu Node.js, uzyskując dostęp do systemu plików, sieci oraz innych zasobów serwera.
Należy zaprzestać używania modułu safe-eval do izolacji niezaufanego kodu. Zgodnie z referencjami zaleca się zastosowanie bardziej rygorystycznych mechanizmów sandbox lub alternatywnych rozwiązań. Szczegóły dostępne w poradniku Node Security Project (nodesecurity.io/advisories/337) oraz w repozytorium projektu.
Moduł Safe-Eval projektu Safe-Eval (safe-eval) — wszystkie wersje wskazane w referencjach producenta.
CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HSafe Eval Project Safe Eval
APPSafe-Eval Project0.0.00.1.00.2.00.3.0
Powiązane podatności
All versions of the package safe-eval are vulnerable to Prototype Pollution via the safeEval function, due to ...
All versions of the package safe-eval are vulnerable to Sandbox Bypass due to improper input sanitization. The...
All versions of package safe-eval are vulnerable to Prototype Pollution which allows an attacker to add or mod...
This affects all versions of package safe-eval. It is possible for an attacker to run an arbitrary command on ...