Критическая уязвимость vm2 позволяет выйти из песочницы Node.js

CVE-2026-26956 — критическая уязвимость в библиотеке vm2, которая используется для запуска недоверенного JavaScript-кода в изолированной среде приложений Node.js. По данным отчета, проблема позволяет злоумышленнику выйти за пределы песочницы, реализованной в vm2 3.10.4, и выполнить произвольный код на хосте в процессе Node.js. Уязвимости присвоен CVSS 9.8, что указывает на крайне высокий уровень риска.

Особую опасность представляет то, что проблема уже подтверждена на Node.js v25.6.1, работающем на x64 Linux. Иными словами, речь идет не о теоретическом сценарии, а о воспроизводимой атаке, затрагивающей реальные инфраструктуры.

Как работает атака

Эксплуатация CVE-2026-26956 строится на манипуляции обработкой исключений WebAssembly. Хотя vm2 традиционно опирается на JavaScript-уровень контроля песочницы и обработку ошибок, новая уязвимость обходит эти механизмы с помощью конструкции WebAssembly, известной как try_table, в сочетании с обработчиком перехвата JSTag.

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

Почему это опасно для инфраструктуры

Практические последствия уязвимости особенно значимы для сред, где vm2 используется как граница между безопасным и недоверенным кодом. В зоне риска оказываются:

  • многопользовательские среды;
  • системы выполнения плагинов;
  • платформы непрерывной интеграции;
  • сервисы автоматизации;
  • рабочие процессы с функциями скриптования.

Во всех этих сценариях компрометация песочницы означает потенциальный переход от выполнения ограниченного кода к RCE в процессе Node.js на хосте. Это делает уязвимость особенно опасной для сервисов, которые принимают недоверенный ввод и рассчитывают на vm2 как на защитный барьер.

PoC уже доступен

Отдельную тревогу вызывает наличие открытого Proof-of-Concept (PoC), который демонстрирует как выход из песочницы, так и выполнение команд на хосте. Это существенно повышает вероятность практического применения эксплойта в реальных атаках, особенно против систем, где недоверенный код передается в vm2 без дополнительной изоляции.

Что рекомендуется сделать

Чтобы снизить риски, связанные с CVE-2026-26956, организациям следует принять следующие меры:

  • проверить кодовые базы на наличие вызовов VM.run() с недоверенным входом;
  • определить, используется ли Node.js 25.x;
  • проверить, включены ли необходимые функции WebAssembly;
  • обновить vm2 до версии выше 3.10.4;
  • выявить пути, по которым недоверенный код может попасть в vm2.

Эксперты подчеркивают, что одной только версии недостаточно: организациям важно анализировать архитектуру использования песочницы и ограничивать любые сценарии, в которых недоверенный код получает доступ к исполнению в чувствительных средах.

Вывод: CVE-2026-26956 демонстрирует, что даже популярные механизмы sandboxing в Node.js могут быть уязвимы к обходу при сложных сценариях взаимодействия с WebAssembly. Для компаний, использующих vm2, это сигнал срочно пересмотреть модели изоляции и не полагаться на песочницу как на единственный уровень защиты.

Отчет получен из сервиса CTT Report Hub. Права на отчет принадлежат его владельцу.

Ознакомиться подробнее с отчетом можно по ссылке.

Технологии киберугроз
Автор: Технологии киберугроз
Технологии киберугроз (бренд RST Cloud Russia) – технологическая компания, специализирующаяся на решениях по анализу угроз для предприятий любого размера. Мы собираем, нормализуем, обогащаем информацию о киберугрозах со всего мира. Нашими источниками являют более 260 открытых фидов, более 100 открытых поставщиков Threat Intelligence-отчетов, открытые online sandbox, социальные сети и репозитории GitHub. Мы также предоставляем ряд сервисов по: семантическом анализу Threat Intelligence-отчетов и приведения их в машиночитаемый формат STIX 2.1, проверки IoC на потенциальные ложноположительные сработки, а также получению WHOIS-записей для доменных имен.
Комментарии: