CRITICAL🇬🇧 English

CVE-2026-44005

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

CVSS 10.0v3.1pub. 2026-05-13upd. 2026-06-30

Biblioteka vm2 dla Node.js w wersjach od 3.9.6 do 3.10.5 umożliwia kod działający wewnątrz sandbox na modyfikację współdzielonych prototypów hosta (Object.prototype, Array.prototype, Function.prototype). Jest to podatność o maksymalnym wyniku CVSS 10.0, pozwalająca na przełamanie izolacji sandbox.

Pokaż oryginał (EN)

vm2 is an open source vm/sandbox for Node.js. From 3.9.6 to 3.10.5, vm2's bridge exposes mutable proxies for real host-realm intrinsic prototypes and then forwards sandbox writes into the underlying host objects with otherReflectSet() and otherReflectDefineProperty(), which lets attacker-controlled JavaScript running in a default VM or inherited NodeVM mutate shared host Object.prototype, Array.prototype, and Function.prototype from inside the sandbox This vulnerability is fixed in 3.11.0.

🤖 Analiza AI
Jak działa

Mostek (bridge) vm2 udostępnia wewnątrz sandbox modyfikowalne proxy wskazujące na rzeczywiste prototypy środowiska hosta. Kiedy kod w sandbox wykonuje zapis na takim proxy, vm2 przekazuje tę operację bezpośrednio do obiektów hosta za pomocą wewnętrznych funkcji otherReflectSet() oraz otherReflectDefineProperty(). W efekcie atakujący może z poziomu domyślnego VM lub dziedziczącego NodeVM modyfikować globalne prototypy JavaScript hosta, co stanowi klasyczny atak prototype pollution wykraczający poza granice sandbox.

Skutki

Atakujący może zmodyfikować współdzielone prototypy hosta (Object.prototype, Array.prototype, Function.prototype), co może prowadzić do zakłócenia działania aplikacji, wykonania niezamierzonego kodu w kontekście hosta oraz naruszenia integralności i dostępności całego procesu Node.js.

Mitygacja

Należy zaktualizować vm2 do wersji 3.11.0, w której podatność została naprawiona. Jeśli natychmiastowa aktualizacja jest niemożliwa, należy ograniczyć lub całkowicie zrezygnować z uruchamiania niezaufanego kodu w ramach vm2 do czasu wdrożenia patcha.

Kogo dotyczy

vm2 w wersjach od 3.9.6 do 3.10.5 (włącznie) dla Node.js

Uwagi

Podatność została zgłoszona i naprawiona przez zespół projektu vm2. Szczegóły dostępne w oficjalnym security advisory na GitHub: GHSA-vwrp-x96c-mhwq.

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

    APP
    Vm2 Project
    3.9.6 – 3.11.0 (bez)
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
CWE
Referencje

Powiązane podatności

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

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

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

vm2 (Node.js): ucieczka z sandbox przez zagnieżdżony NodeVM (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-44008CRITICAL9.8PL ✓ten sam produkt

Ucieczka z sandboxu vm2 poprzez getter na prototypie tablicy