Podatność w bibliotece vm2 (sandbox dla Node.js) umożliwia ominięcie mechanizmu ograniczania dostępu do wbudowanych modułów Node.js. Atakujący z dostępem do sandboxowanego kodu może uzyskać zdalne wykonanie kodu (RCE) na hoście.
▸ Pokaż oryginał (EN)
vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, NodeVM's builtin allowlist can be bypassed when the module builtin is allowed (including via the '*' wildcard). The module builtin exposes Node's Module._load(), which loads any module by name directly in the host context, completely bypassing vm2's builtin restriction. This allows sandboxed code to load excluded builtins like child_process and achieve remote code execution. This vulnerability is fixed in 3.11.0.
vm2 implementuje listę dozwolonych modułów wbudowanych (builtin allowlist), jednak moduł 'module' — gdy jest dopuszczony (w tym przez użycie symbolu wieloznacznego '*') — eksponuje funkcję Node.js Module._load(). Funkcja ta ładuje dowolny moduł bezpośrednio w kontekście hosta, całkowicie pomijając restrykcje vm2. Pozwala to sandboxowanemu kodowi na załadowanie wykluczonych modułów, takich jak 'child_process', a następnie na wykonanie dowolnych poleceń systemowych.
Atakujący może całkowicie przejąć kontrolę nad procesem Node.js hosta, w tym uzyskać dostęp do systemu plików, uruchamiać dowolne polecenia oraz eskalować atak na dalsze zasoby infrastruktury.
Należy zaktualizować vm2 do wersji 3.11.0 lub nowszej, w której podatność została naprawiona.
vm2 w wersjach wcześniejszych niż 3.11.0
Podatność zgłoszona i naprawiona w ramach oficjalnego security advisory repozytorium GitHub projektu vm2.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HVm2 Project Vm2
APPVm2 Project< 3.11.0
Powiązane podatności
vm2 (Node.js): ucieczka z sandbox przez BaseHandler.getPrototypeOf (RCE)
vm2 (Node.js): ucieczka z sandbox przez zagnieżdżony NodeVM (RCE)
Ucieczka z sandboxa w bibliotece vm2 dla Node.js (RCE)
vm2: mutacja prototypów hosta z poziomu sandbox (prototype pollution)
Ucieczka z sandboxu vm2 poprzez getter na prototypie tablicy