Biblioteka vm2 (sandbox dla Node.js) w wersjach przed 3.11.0 pozwala atakującemu na uzyskanie dostępu do obiektu hosta i ucieczkę z izolowanego środowiska wykonania kodu. Podatność jest krytyczna, ponieważ umożliwia całkowite przełamanie izolacji sandboxa.
▸ Pokaż oryginał (EN)
vm2 is an open source vm/sandbox for Node.js. Prior to 3.11.0, it is possible to obtain the host Object. There are various ways to use the host Object, to escape the sandbox, one example would be using HostObject.getOwnPropertySymbols to obtain Symbol(nodejs.util.inspect.custom). This vulnerability is fixed in 3.11.0.
Podatność (CWE-94 — improper control of code generation) polega na możliwości uzyskania referencji do obiektu hosta z poziomu kodu uruchamianego wewnątrz sandboxa. Przykładową metodą eksploitacji jest wywołanie metody `getOwnPropertySymbols` na obiekcie hosta w celu pobrania symbolu `Symbol(nodejs.util.inspect.custom)`, co umożliwia dalsze manipulowanie środowiskiem Node.js poza sandboxem. Po uzyskaniu dostępu do obiektu hosta atakujący może wykonywać dowolny kod w kontekście procesu hosta.
Atakujący może uciec z izolowanego sandboxa i wykonać dowolny kod na serwerze hosta (RCE), co w praktyce oznacza pełną kompromitację systemu, na którym działa aplikacja korzystająca z vm2.
Należy niezwłocznie zaktualizować bibliotekę vm2 do wersji 3.11.0 lub nowszej, w której podatność została naprawiona. Szczegóły dostępne w referencjach producenta na GitHub Security Advisories.
Biblioteka vm2 dla Node.js w wersjach przed 3.11.0
Podatność została naprawiona w wersji 3.11.0 biblioteki vm2 zgodnie z informacją w opisie oryginalnym. CISA KEV nie odnotowuje aktywnej eksploatacji.
CVSS:3.1/AV:N/AC:L/PR:N/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)
vm2: ominięcie listy dozwolonych modułów i RCE przez builtin 'module'
vm2: mutacja prototypów hosta z poziomu sandbox (prototype pollution)
Ucieczka z sandboxu vm2 poprzez getter na prototypie tablicy