Критические уязвимости в библиотеке vm2 угрожают тысячам проектов на Node.js

vulnerability

В начале мая в Банк данных угроз безопасности информации (BDU) ФСТЭК России были внесены записи сразу о трёх критических уязвимостях популярной библиотеки vm2. Речь идёт о компоненте, который используется для изолированного выполнения кода JavaScript в среде Node.js. Уязвимости получили идентификаторы BDU:2026-06427 (CVE-2026-26332), BDU:2026-06428 (CVE-2026-26956) и BDU:2026-06429 (CVE-2026-24118). Их объединяет одно: все они позволяют удалённому злоумышленнику выполнить произвольный код на сервере или в клиентском приложении, где установлена эта библиотека.

Детали уязвимостей

Первая уязвимость (BDU:2026-06427) связана с неверным управлением генерацией кода. Иными словами, механизм, который должен был блокировать опасные операции, оказался несостоятельным. Вторая проблема (BDU:2026-06428) затрагивает функцию VM.run(). Это один из основных методов библиотеки для выполнения кода внутри песочницы. Из-за нарушения механизма защиты данных злоумышленник может обойти все ограничения и исполнить произвольные команды на сервере. Третья уязвимость (BDU:2026-06429) повторяет тип ошибки первой - внедрение кода (CWE-94) в сочетании с нарушением защиты (CWE-693). Примечательно, что для всех трёх дефектов производителем подтверждено наличие готовых эксплойтов в открытом доступе. Это означает, что любой, даже начинающий злоумышленник, может скачать готовую программу для атаки и использовать её без глубоких технических знаний.

Вендор библиотеки - Node.js Foundation - уже выпустил исправление. Уязвимыми считаются все версии vm2 до 3.10.4 включительно. Версия 3.10.4 также содержит критическую ошибку, что подтверждает запись BDU:2026-06428. Следовательно, единственный надёжный способ защиты - обновление до актуальной версии, в которой эти дефекты устранены. Разработчики опубликовали рекомендации на странице GitHub в разделе безопасности (security advisories). Ссылки на них приведены в описаниях каждой уязвимости.

Давайте разберёмся, чем опасна эксплуатация этих уязвимостей на практике. Библиотека vm2 часто применяется в платформах для выполнения пользовательского кода: сервисах онлайн-редакторов, учебных тренажёрах, инструментах для тестирования, а также в некоторых системах для работы с модулями и скриптами. Если злоумышленник использует уязвимость, он может внедрить в песочницу вредоносный код, который затем вырвется за её пределы. После этого нарушитель получает возможность выполнить произвольные команды на сервере: украсть базы данных, установить программы-вымогатели, изменить конфигурацию или использовать сервер для атак на другие системы. Вектор атаки в большинстве случаев - инъекция (внедрение вредоносного кода через входные данные) или несанкционированный сбор информации. Учитывая, что оценка CVSS 3.1 для двух уязвимостей составляет 9,8, а для одной - 10, можно уверенно говорить о максимальном уровне угрозы.

Особую тревогу вызывает тот факт, что эксплойты существуют в открытом доступе. Значит, скорость реакции администраторов и разработчиков должна быть максимально высокой. Каждый час бездействия увеличивает вероятность того, что сервер будет скомпрометирован. Даже если атака не произошла немедленно, злоумышленники могут сканировать сеть в поисках уязвимых версий vm2 и атаковать их автоматически.

По своему типу уязвимости относятся к разным классам. BDU:2026-06427 классифицирована как многофакторная, BDU:2026-06428 - как архитектурная, BDU:2026-06429 - как уязвимость кода. Такое разнообразие говорит о том, что проблема не является единичной ошибкой, а затрагивает несколько уровней реализации библиотеки. Поэтому обновление до версии, в которой исправлены все три дефекта, является обязательным. Разработчики обычно указывают номер версии, начиная с которой уязвимости устранены. Рекомендуется проверить актуальный релиз на странице проекта.

Для специалистов по информационной безопасности сейчас главная задача - как можно быстрее найти все инсталляции vm2 в своей инфраструктуре и обновить их. Если обновление по каким-то причинам невозможно (например, из-за зависимостей со старым кодом), следует временно отключить использование песочницы или перенести её в изолированную среду с минимальными правами. Но лучше всё же установить патч.

Подводя итог, можно сказать, что ситуация с vm2 - один из тех случаев, когда промедление в обновлении грозит полной компрометацией сервера. Наличие готовых эксплойтов и критические оценки CVSS делают эту угрозу первостепенной. Каждому, кто использует данную библиотеку, необходимо немедленно проверить её версию и установить актуальный релиз. Только так можно предотвратить возможную утечку данных или захват управления инфраструктурой.

Ссылки

Комментарии: 0