CRITICAL🇬🇧 English

CVE-2026-22709

vm2 — ucieczka z sandbox przez niesanityzowany globalPromise

CVSS 9.8v3.1pub. 2026-01-26upd. 2026-02-17

Podatność w bibliotece vm2 (sandbox dla Node.js) w wersjach przed 3.10.2 pozwala atakującemu na ucieczkę z izolowanego środowiska wykonawczego i uruchomienie dowolnego kodu. Ze względu na brak uwierzytelnienia i sieciowy wektor ataku podatność jest oceniana jako krytyczna (CVSS 9.8).

Pokaż oryginał (EN)

vm2 is an open source vm/sandbox for Node.js. In vm2 prior to version 3.10.2, `Promise.prototype.then` `Promise.prototype.catch` callback sanitization can be bypassed. This allows attackers to escape the sandbox and run arbitrary code. In lib/setup-sandbox.js, the callback function of `localPromise.prototype.then` is sanitized, but `globalPromise.prototype.then` is not sanitized. The return value of async functions is `globalPromise` object. Version 3.10.2 fixes the issue.

🤖 Analiza AI
Jak działa

W pliku lib/setup-sandbox.js sanityzacja callbacków jest stosowana wyłącznie dla `localPromise.prototype.then` oraz `localPromise.prototype.catch`, natomiast odpowiedniki na obiekcie `globalPromise` pozostają niezabezpieczone. Ponieważ funkcje asynchroniczne (async) zwracają obiekt `globalPromise`, atakujący może przekazać niesanityzowany callback przez mechanizm Promise, omijając w ten sposób ochronę sandbox. Umożliwia to wykonanie dowolnego kodu JavaScript poza izolowanym kontekstem vm2.

Skutki

Atakujący może całkowicie uciec z piaskownicy vm2 i wykonać dowolny kod w kontekście procesu Node.js hosta, co potencjalnie prowadzi do pełnego przejęcia kontroli nad serwerem, kradzieży danych oraz naruszenia integralności i dostępności systemu.

Mitygacja

Należy zaktualizować bibliotekę vm2 do wersji 3.10.2, która naprawia opisany błąd. Patch dostępny jest w oficjalnym repozytorium GitHub projektu (tag v3.10.2).

Kogo dotyczy

vm2 (Vm2 Project) we wszystkich wersjach przed 3.10.2

Uwagi

Podatność opisana w security advisory GHSA-99p7-6v5w-7xg8 w repozytorium GitHub patriksimek/vm2. Fix wprowadzony commitem 4b009c2d4b1131c01810c1205e641d614c322a29.

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

    APP
    Vm2 Project
    < 3.10.2
🔵
ZWERYFIKUJ U PRODUCENTA
Brak jednoznacznych danych o patchu. Sprawdź referencje od producenta.
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)