Podatności vm2
30 znanych podatności CVE w vm2, przetłumaczonych i ocenionych.
- CVE-2026-47698Krytyczne
vm2 to otwartoźródłowa piaskownica dla Node.js. Przed wersją 3.11.6, lib/bridge.js i lib/setup-sandbox.js nie blokują pośredniego wywołania przez Function.prototype.call wokół niebezpiecznych mutatorów prototypów hosta, co pozwala kodowi piaskownicy na zerwanie łańcucha prototypów i dotarcie do e.constructor.constructor w celu wykonania dowolnych poleceń na hoście. Problem naprawiono w wersji 3.11.6.
- CVE-2026-47686Krytyczne
vm2 to otwartoźródłowa piaskownica dla Node.js. Przed wersją 3.11.6, funkcja handleException() w lib/setup-sandbox.js oczyszcza SuppressedError.error, SuppressedError.suppressed i AggregateError.errors, ale nie oczyszcza Error.cause, co pozwala kodowi piaskownicy uzyskać potężny obiekt hosta, taki jak process, z funkcji hosta, która rzuca błąd z tym obiektem jako przyczyną, a następnie wykonać dowolne polecenia na hoście. Problem naprawiono w wersji 3.11.6.
- CVE-2026-47210Krytyczne
W vm2, przed wersją 3.11.4, występowała podatność na ucieczkę z piaskownicy, która umożliwiała wykonanie dowolnego kodu w procesie hosta podczas wykonywania nieufnego kodu z obsługą asynchroniczną. Problem ten został naprawiony w wersji 3.11.4.
- CVE-2026-47208Krytyczne
vm2 to otwarte źródło vm/sandbox dla Node.js. Przed wersją 3.11.4, vm2 ma podatność na wyjście z piaskownicy, co pozwala atakującym na wykonanie dowolnych poleceń na systemie gospodarza.
- CVE-2026-47140Krytyczne
vm2 to otwarte źródło vm/sandbox dla Node.js. W wersjach przed 3.11.4, NodeVM blokuje kilka niebezpiecznych wbudowanych funkcji Node.js, jednak lista zablokowanych elementów nie obejmowała process oraz inspector/promises, co pozwala na obejście tych ograniczeń.
- CVE-2026-47137Krytyczne
W wersjach przed 3.11.4 biblioteka vm2 zawierała lukę, która pozwalała na obejście zabezpieczeń związanych z opcjami 'nesting: true' i 'require: false'. Sprawdzenie równości ścisłej w kodzie nie działało poprawnie, co umożliwiało wykorzystanie nieautoryzowanych wymagań.
- CVE-2026-47131Krytyczne
vm2 to otwarte źródło vm/sandbox dla Node.js. Przed wersją 3.11.4, poprzez kombinację określonych wywołań, możliwe było uzyskanie konstruktora TypeError hosta, co pozwalało na ucieczkę z sandboxa i uruchamianie dowolnego kodu.
- CVE-2026-45411Krytyczne
W bibliotece vm2 dla Node.js przed wersją 3.11.3 wykryto podatność umożliwiającą przechwycenie wyjątku hosta za pomocą wyrażenia yield* w asynchronicznym generatorze. Zamknięcie generatora funkcją return powoduje oczekiwanie na wartość, a wyjątki w then mogą być przechwycone i przekazane jako następna wartość do iteratora yield*, co pozwala na ucieczkę z sandboksa i wykonanie dowolnych poleceń na systemie.
- CVE-2026-44009Krytyczne
Podatność w bibliotece vm2 dla Node.js umożliwia ominięcie sandboksa. Problem został naprawiony w wersji 3.11.2.
- CVE-2026-44008Krytyczne
Podatność w bibliotece vm2 dla Node.js przed wersją 3.11.2 pozwala na ucieczkę z piaskownicy poprzez metodę neutralizeArraySpeciesBatch, która może wywołać kod po stronie hosta za pomocą gettera na prototypie tablicy. Umożliwia to atakującym uzyskanie obiektów hosta i funkcji Function, co prowadzi do wykonania dowolnych poleceń na systemie.
- CVE-2026-44007Krytyczne
Podatność w bibliotece vm2 dla Node.js umożliwia ominięcie konfiguracji require w NodeVM z włączonym zagnieżdżaniem (nesting: true). Kod piaskownicy może zażądać modułu vm2, utworzyć nową instancję NodeVM z nieograniczonym require i wykonać dowolne polecenia systemowe na hoście.
- CVE-2026-44006Krytyczne
Podatność w bibliotece vm2 dla Node.js umożliwia atakującemu ominięcie sandboksowania i dostęp do dowolnych prototypów obiektów. Problem został naprawiony w wersji 3.11.0.
- CVE-2026-44005Krytyczne
Podatność w bibliotece vm2 dla Node.js (wersje 3.9.6 do 3.10.5) umożliwia atakującemu JavaScript działającemu w piaskownicy modyfikację prototypów hosta, takich jak Object.prototype, Array.prototype i Function.prototype. Dzieje się tak przez mostek, który udostępnia mutowalne proxy dla rzeczywistych prototypów hosta, a następnie przekazuje zapisy z piaskownicy do obiektów hosta za pomocą ReflectSet() i ReflectDefineProperty().
- CVE-2026-43999Krytyczne
Podatność w vm2 przed wersją 3.11.0 pozwala na obejście listy dozwolonych modułów wbudowanych NodeVM. Gdy moduł 'builtin' jest dozwolony (nawet przez '*' wildcard), kod w sandboxie może użyć Module._load() do załadowania dowolnego modułu w kontekście hosta, omijając ograniczenia. Umożliwia to uruchomienie wykluczonych modułów, takich jak child_process, i zdalne wykonanie kodu.
- CVE-2026-43997Krytyczne
Podatność w bibliotece vm2 dla Node.js przed wersją 3.11.0 umożliwia uzyskanie dostępu do obiektu hosta. Atakujący może wykorzystać różne metody, np. HostObject.getOwnPropertySymbols, aby uzyskać Symbol(nodejs.util.inspect.custom) i uciec z piaskownicy.
- CVE-2026-26956Krytyczne
Podatność w bibliotece vm2 dla Node.js w wersji 3.10.4 umożliwia całkowite ominięcie sandboksa i wykonanie dowolnego kodu na hoście. Atakujący może uzyskać dostęp do obiektu procesu hosta i uruchamiać polecenia bez żadnej współpracy z systemem.
- CVE-2026-26332Krytyczne
Podatność w bibliotece vm2 dla Node.js umożliwia atakującym ominięcie sandboksa i wykonanie dowolnego kodu poprzez mechanizm SuppressedError. Problem został naprawiony w wersji 3.11.0.
- CVE-2026-24781Krytyczne
Podatność w bibliotece vm2 dla Node.js umożliwia ucieczkę z piaskownicy poprzez funkcję inspect. Atakujący może wykonać dowolne polecenia na hoście.
- CVE-2026-24120Krytyczne
Podatność w bibliotece vm2 dla Node.js pozwala na obejście łatki dla CVE-2023-37466 i ucieczkę z piaskownicy VM2, co umożliwia wykonanie dowolnych poleceń na hoście. Problem został naprawiony w wersji 3.10.5.
- CVE-2026-24118Krytyczne
VM2 to otwartoźródłowa maszyna wirtualna/piaskownica dla Node.js. Przed wersją 3.11.0 zawiera podatność umożliwiającą ucieczkę z piaskownicy, co pozwala atakującemu na wykonanie dowolnych poleceń na hoście.
- CVE-2023-37903Krytyczne
vm2 to otwarte źródło vm/sandbox dla Node.js. W wersjach do i włącznie z 3.9.19, funkcja inspect w Node.js umożliwia atakującym ucieczkę z sandboxa i uruchamianie dowolnego kodu.
- CVE-2023-37466Krytyczne
Biblioteka vm2, zaawansowane środowisko sandbox dla Node.js, zawiera krytyczne problemy bezpieczeństwa i nie powinna być używana w produkcji. W wersjach do 3.9.19 możliwe jest obejście sanitizacji handlerów `Promise`, co pozwala atakującym na ucieczkę z sandboxa i uruchomienie dowolnego kodu.
- CVE-2026-47683Wysokie
vm2 przed wersją 3.11.6 zawiera podatność, gdzie egzekwowanie limitu bufferAllocLimit nie obejmuje funkcji Buffer.concat(list, totalLength) ani Buffer.from(arrayLike) z kontrolowaną długością, co pozwala kodowi w sandboxie na duże synchroniczne alokacje pamięci poza limitem, mogące wyczerpać proces hosta.
- CVE-2026-47209Wysokie
W wersjach przed 3.11.4 biblioteka vm2 ma lukę w metodzie BaseHandler.set, która ignoruje parametr receiver i nieprawidłowo zapisuje do obiektu docelowego. To prowadzi do wycieku właściwości dziedziczonych do obiektu hosta, co stwarza możliwość ataku na klucze Symbol w różnych kontekstach.
- CVE-2026-47141Średnie
vm2 to otwarte źródło vm/sandbox dla Node.js. W wersjach przed 3.11.4, NodeVM udostępnia niektóre wbudowane funkcje obserwacji, które mogą być używane przez kod w piaskownicy do obserwacji danych aplikacji hosta.
- CVE-2026-47139Wysokie
vm2 to otwarte źródło vm/sandbox dla Node.js. W wersjach przed 3.11.4, NodeVM umożliwiało wykluczenie publicznych modułów sieciowych, jednak wewnętrzne moduły HTTP z podkreśleniem, takie jak _http_client i _http_server, nie były blokowane, co pozwalało na wykonywanie żądań HTTP mimo wykluczenia publicznych modułów.
- CVE-2026-47135Wysokie
vm2 to otwarte źródło vm/sandbox dla Node.js. W wersjach przed 3.11.4, nadpisanie Symbol.for w setup-sandbox.js przechwytuje tylko 2 z 9 niebezpiecznych symboli cross-realm Node.js, co pozwala na uzyskanie rzeczywistych symboli cross-realm i kontrolowanie zachowania po stronie hosta.
- CVE-2026-44004Wysokie
Podatność w bibliotece vm2 dla Node.js przed wersją 3.11.0 pozwala uruchomionemu w sandboxie kodowi na wywołanie funkcji Buffer.alloc() z dowolnym rozmiarem, co prowadzi do alokacji pamięci bezpośrednio na stercie hosta. Ponieważ Buffer.alloc jest synchronicznym natywnym wywołaniem C++, opcja timeout w vm2 nie jest w stanie przerwać tej operacji, co umożliwia wyczerpanie pamięci hosta i awarię procesu.
- CVE-2026-44001Wysokie
Podatność w vm2 przed wersją 3.11.0 pozwala na ucieczkę z sandboksa poprzez konstruktor Promise, co powoduje nieobsłużone odrzucenie propagujące do hosta i crash procesu Node.js. Problem dotyczy wersji 3.10.5 i został załatany w 3.11.0.
- CVE-2026-43998Wysokie
W vm2 3.10.5, ograniczenie ścieżki require.root w NodeVM może zostać ominięte za pomocą dowiązań symbolicznych systemu plików, co pozwala kodowi w piaskownicy na ładowanie modułów spoza dozwolonego katalogu głównego w kontekście hosta. Ponieważ walidacja ścieżki używa path.resolve() (która nie rozwiązuje dowiązań symbolicznych), a ładowanie modułów używa natywnego require() Node.js (który je rozwiązuje), atakujący może załadować dowolne moduły hosta i uzyskać zdalne wykonanie kodu.

