CRITICAL🇬🇧 English

CVE-2023-29017

RCE w bibliotece vm2 — ucieczka z sandbox poprzez Error.prepareStackTrace

CVSS 10.0v3.1pub. 2023-04-06upd. 2024-11-21

Biblioteka vm2, służąca do izolowanego uruchamiania niezaufanego kodu Node.js, nieprawidłowo obsługiwała obiekty hosta przekazywane do `Error.prepareStackTrace` przy nieobsłużonych błędach asynchronicznych. Podatność umożliwia całkowite ominięcie mechanizmów sandbox i uzyskanie możliwości RCE na serwerze hosta.

Pokaż oryginał (EN)

vm2 is a sandbox that can run untrusted code with whitelisted Node's built-in modules. Prior to version 3.9.15, vm2 was not properly handling host objects passed to `Error.prepareStackTrace` in case of unhandled async errors. A threat actor could bypass the sandbox protections to gain remote code execution rights on the host running the sandbox. This vulnerability was patched in the release of version 3.9.15 of vm2. There are no known workarounds.

🤖 Analiza AI
Jak działa

vm2 implementuje środowisko sandbox mające na celu izolację niezaufanego kodu od systemu hosta. W wersjach przed 3.9.15 biblioteka nieprawidłowo walidowała obiekty hosta przekazywane do funkcji `Error.prepareStackTrace` w kontekście nieobsłużonych błędów asynchronicznych (async errors). Atakujący mógł spreparować odpowiedni payload, który poprzez tę lukę w obsłudze błędów wydostawał się poza granice sandbox i uzyskiwał pełny dostęp do środowiska Node.js hosta. Wektor ataku jest sieciowy, nie wymaga uwierzytelnienia ani interakcji użytkownika, a zasięg ataku wykracza poza komponent podatny (Scope: Changed).

Skutki

Atakujący może całkowicie ominąć izolację sandbox i uzyskać RCE na maszynie hostującej środowisko vm2, co w praktyce oznacza pełną kompromitację serwera — możliwość odczytu i modyfikacji danych, instalacji złośliwego oprogramowania oraz dalszego lateral movement w sieci.

Mitygacja

Należy zaktualizować bibliotekę vm2 do wersji 3.9.15 lub nowszej, w której podatność została załatana (commit d534e5785f38307b70d3aac1945260a261a94d50). Producent nie wskazuje żadnych obejść (workarounds) dla starszych wersji — aktualizacja jest jedynym rozwiązaniem.

Kogo dotyczy

Biblioteka vm2 (projekt Vm2 Project) we wszystkich wersjach przed 3.9.15

Uwagi

Publiczny proof-of-concept exploit jest dostępny pod adresem wskazanym w referencjach (gist.github.com/seongil-wi). Podatność sklasyfikowana jako CVSS 10.0 (maksymalny wynik) — mimo braku wpisu w CISA KEV jej charakter (brak wymaganych uprawnień, brak interakcji użytkownika, pełne RCE) nakazuje traktować ją priorytetowo.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
  • Vm2 Project Vm2

    APP
    Vm2 Project
    < 3.9.15
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
Tagi
RCE
CWE
Referencje

Powiązane podatności

CVE-2026-44005CRITICAL10.0PL ✓ten sam produkt

vm2: mutacja prototypów hosta z poziomu sandbox (prototype pollution)

CVE-2026-44006CRITICAL10.0PL ✓ten sam produkt

vm2 (Node.js): ucieczka z sandbox przez BaseHandler.getPrototypeOf (RCE)

CVE-2026-43997CRITICAL10.0PL ✓ten sam produkt

Ucieczka z sandboxa w bibliotece vm2 dla Node.js (RCE)

CVE-2026-43999CRITICAL9.9PL ✓ten sam produkt

vm2: ominięcie listy dozwolonych modułów i RCE przez builtin 'module'

CVE-2026-44007CRITICAL9.1PL ✓ten sam produkt

vm2 (Node.js): ucieczka z sandbox przez zagnieżdżony NodeVM (RCE)