CRITICAL🇬🇧 English

CVE-2026-47210

vm2 sandbox escape via WebAssembly JSPI umożliwia RCE w procesie hosta

CVSS 9.8v3.1pub. 2026-06-12

Podatność w bibliotece vm2 (Node.js) pozwala na ucieczkę z sandboxa i wykonanie dowolnego kodu w procesie hosta, gdy uruchamiany jest niezaufany kod z obsługą async na środowiskach udostępniających WebAssembly JSPI. Luka otrzymała krytyczny wynik CVSS 9.8, co czyni ją ekstremalnie niebezpieczną dla aplikacji korzystających z vm2 do izolacji niezaufanego kodu.

Pokaż oryginał (EN)

vm2 is an open source vm/sandbox for Node.js. Prior to version 3.11.4, a sandbox escape vulnerability in vm2 allows arbitrary code execution in the host process when untrusted code is executed with async support on runtimes exposing WebAssembly JSPI (WebAssembly.promising / WebAssembly.Suspending). In the tested configuration, a JSPI-backed Promise can reach Promise.prototype.finally() in a way that bypasses the expected Promise-species hardening and exposes a host-originated rejection object to attacker-controlled species logic, breaking the sandbox boundary. This issue has been patched in version 3.11.4.

🤖 Analiza AI
Jak działa

Błąd polega na tym, że Promise oparty na mechanizmie WebAssembly JSPI (WebAssembly.promising / WebAssembly.Suspending) może dotrzeć do metody Promise.prototype.finally() w sposób omijający oczekowane zabezpieczenie Promise-species hardening. W efekcie obiekt odrzucenia (rejection object) pochodzący z hosta zostaje ujawniony kontrolowanej przez atakującego logice species, co prowadzi do przełamania granicy sandboxa. Atakujący dostarczający niezaufany kod do wykonania w vm2 może w ten sposób uzyskać pełny dostęp do procesu hosta.

Skutki

Atakujący może wykonać dowolny kod (RCE) poza sandboxem — bezpośrednio w procesie hosta Node.js, co może prowadzić do pełnego przejęcia kontroli nad serwerem, wycieku danych oraz naruszenia integralności i dostępności systemu.

Mitygacja

Należy zaktualizować vm2 do wersji 3.11.4 lub nowszej, w której podatność została załatana. Patch dostępny jest w repozytorium GitHub pod tagiem v3.11.4 (commit 6915fa4d9bcebd47b9a4f39a1adc1aa94ef6ffc6).

Kogo dotyczy

Biblioteka vm2 w wersjach wcześniejszych niż 3.11.4, uruchamiana na środowiskach Node.js eksponujących WebAssembly JSPI.

Uwagi

Podatność dotyczy wyłącznie środowisk, w których dostępne jest WebAssembly JSPI (eksperymentalna funkcja). Jeśli środowisko uruchomieniowe nie eksponuje WebAssembly.promising / WebAssembly.Suspending, wektor ataku jest niedostępny.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
RCE
CWE
Referencje