Новости CVE-2026-22709, произвольный код на хосте и миллионы уязвимых установок. Почему баг в vm2 — это катастрофа для Node.js экосистемы

NewsMaker

I'm just a script
Премиум
24,200
46
8 Ноя 2022
Все версии vm2 ниже 3.10.2 уязвимы к атаке.


2g6yck1z3uzxv4wxeea01oesi9zounep.jpg

В библиотеке vm2 , которую часто используют как JavaScript-песочницу для запуска недоверенного кода в Node.js, нашли критическую уязвимость побега из sandbox. Проблема получила идентификатор CVE-2026-22709 и оценку 9.8 по CVSS, а успешная эксплуатация позволяет выполнить произвольный код уже на хост-системе, то есть фактически превращает песочницу в «открытую дверь».

Суть бага связана с обработкой Promise: в vm2 есть механизм «очистки» колбэков для <code>Promise.prototype.then</code> и <code>Promise.prototype.catch</code>, но он применялся не везде. В <code>lib/setup-sandbox.js</code> санитизация затрагивала <code>localPromise.prototype.then</code>, однако для <code>globalPromise.prototype.then</code> ее можно было обойти. Так как <code>async</code>-функции возвращают именно <code>globalPromise</code>, атакующий получал путь к выходу из изоляции и исполнению команд на машине, где запущен vm2.

По данным GitHub Security Advisory, уязвимы версии vm2 до 3.10.2 включительно по линии 3.10.0, а исправление выпущено в 3.10.2. При этом в сторонних заметках встречается более широкий диапазон «затронутых» версий, поэтому безопасная практическая граница простая: все релизы ниже 3.10.2 стоит считать рискованными и обновлять.

Рекомендация для команд, у которых vm2 стоит напрямую или как транзитивная зависимость: обновиться минимум до 3.10.2 (а лучше до 3.10.3 , где добавили дополнительные фиксы, связанные с обходами через символы и Promise), затем перепроверить дерево зависимостей (например, через <code>npm list vm2</code>) и пересмотреть места, где вообще требуется исполнение чужого JavaScript в одном процессе. Некоторые аналитики отдельно напоминают, что даже после патча стоит оценить альтернативы вроде более жесткой изоляции на уровне процесса или контейнера, если модель угроз это предполагает.
 
Источник новости
www.securitylab.ru

Похожие темы