Новости Песочница оказалась дырявым ведром. Очередной способ взломать Node.js уже гуляет по сети

NewsMaker

I'm just a script
Премиум
26,738
46
8 Ноя 2022
Исправить положение дел быстро не выйдет, и на это есть причины.


03kyyzi28dalknlb0gb4z209wrkyzlis.jpg

Критическая уязвимость в популярной библиотеке vm2 для Node.js поставила под угрозу сервисы, которые запускают чужой JavaScript-код в изолированной среде. Ошибка позволяет выйти за пределы песочницы и получить выполнение команд уже на самой системе. На фоне миллионов загрузок библиотеки через npm проблема затрагивает не только небольшие проекты, но и крупные SaaS-платформы, онлайн-компиляторы и инструменты автоматизации.

Проблему зарегистрировали под идентификатором CVE-2026-26956 . Авторы уведомления подтвердили наличие бреши в версии vm2 3.10.4, хотя предыдущие выпуски тоже могут оказаться уязвимыми. Для ошибки уже появился публичный PoC-код, демонстрирующий удалённое выполнение команд на хосте.

Библиотеку vm2 используют для запуска недоверенного JavaScript-кода в изолированной среде Node.js. Её назначение — ограничить доступ к системным функциям, включая объект process и файловую систему. Однако новая ошибка нарушает сам принцип изоляции.

Причина связана с обработкой исключений между песочницей и основной средой выполнения. В обычных условиях vm2 полагается на механизмы защиты JavaScript и специальные Proxy-объекты, которые фильтруют взаимодействие между окружениями. Однако поддержка обработки исключений WebAssembly позволяет перехватывать ошибки на более низком уровне движка V8, обходя защитные механизмы библиотеки.

Атака строится вокруг специально подготовленного TypeError во время преобразования Symbol в строку. В результате объект ошибки из основной среды попадает обратно в песочницу без необходимой очистки. Поскольку объект создан уже вне sandbox-окружения, злоумышленник может через цепочку конструкторов восстановить доступ к внутренним возможностям Node.js и запустить произвольные команды на системе.

Разработчик vm2 уточнил, что проблема подтверждена для Node.js 25.6.1 при включённой поддержке обработки исключений WebAssembly и JSTag. Пользователям рекомендовали как можно быстрее перейти минимум на vm2 3.10.5, а актуальной версией сейчас считается 3.11.2.

Для vm2 подобные инциденты уже стали регулярными. В начале 2026 года библиотека получила ещё одну критическую уязвимость с выходом из песочницы — CVE-2026-22709 . До этого аналогичные ошибки фиксировали в 2023 и 2022 годах. Серия подобных случаев показывает, насколько сложно надёжно изолировать удалённое выполнение кода даже в популярных инструментах.
 
Источник новости
www.securitylab.ru

Похожие темы