Biblioteka vm2 dla Node.js w wersjach przed 3.11.0 zawiera krytyczną podatność umożliwiającą ucieczkę z sandboxa (sandbox breakout). Atakujący może wykonać dowolne polecenia bezpośrednio na systemie hosta, całkowicie omijając izolację zapewnianą przez środowisko vm2.
▸ Pokaż oryginał (EN)
vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.0, VM2 suffers from a sandbox breakout vulnerability. This allows attackers to write code which can escape from the VM2 sandbox and execute arbitrary commands on the host system. This issue has been patched in version 3.11.0.
Podatność (CWE-94, CWE-693) polega na tym, że mechanizmy ochronne sandboxa vm2 mogą zostać ominięte przez specjalnie spreparowany kod uruchamiany wewnątrz maszyny wirtualnej. Kod złośliwy jest w stanie wyrwać się poza granice izolacji i uzyskać dostęp do środowiska Node.js hosta. Po ucieczce z sandboxa możliwe jest wykonanie dowolnych poleceń systemowych w kontekście procesu hostującego vm2.
Atakujący może wykonać dowolny kod na systemie hosta, co prowadzi do pełnej kompromitacji poufności, integralności i dostępności systemu — w tym przejęcia kontroli nad serwerem, kradzieży danych oraz instalacji złośliwego oprogramowania.
Należy zaktualizować bibliotekę vm2 do wersji 3.11.0, w której problem został naprawiony. Patche dostępne są w repozytorium GitHub projektu (commity: 2b5f3e3 oraz f9b700b1).
Vm2 Project vm2 — wszystkie wersje przed 3.11.0
Podatność została zgłoszona i naprawiona przez twórców projektu vm2 (patriksimek/vm2). Szczegóły dostępne w security advisory GHSA-grj5-jjm8-h35p opublikowanym w repozytorium GitHub projektu.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HVm2 Project Vm2
APPVm2 Project< 3.11.0
Powiązane podatności
vm2: mutacja prototypów hosta z poziomu sandbox (prototype pollution)
vm2 (Node.js): ucieczka z sandbox przez BaseHandler.getPrototypeOf (RCE)
Ucieczka z sandboxa w bibliotece vm2 dla Node.js (RCE)
vm2: ominięcie listy dozwolonych modułów i RCE przez builtin 'module'
vm2 (Node.js): ucieczka z sandbox przez zagnieżdżony NodeVM (RCE)