Критические уязвимости в библиотеке vm2 для Node.js позволяют удалённо захватить контроль над сервером

vulnerability

В реестре Банка данных угроз безопасности информации (BDU) были зафиксированы две критически опасные уязвимости в популярной библиотеке vm2 для платформы Node.js. Речь идёт об идентификаторах BDU:2026-07027 и BDU:2026-07028, которым также присвоены номера CVE-2026-44008 и CVE-2026-45411. Обе проблемы затрагивают версии библиотеки вплоть до 3.11.3 включительно и уже исправлены разработчиком.

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

Библиотека vm2 представляет собой изолированную среду (песочницу) для выполнения JavaScript-кода на серверах Node.js. Её используют во множестве проектов - от облачных IDE до систем управления пользовательскими скриптами. Любая брешь в такой песочнице особенно опасна, потому что позволяет злоумышленнику вырваться за пределы изоляции и получить контроль над хост-системой. Именно это и произошло: обе уязвимости связаны с ошибкой типа CWE-668 - раскрытием ресурса для ошибочной области. По сути, механизм управления памятью в vm2 некорректно проверял границы при обработке массивов данных. Атакующий мог создать специально подготовленный скрипт, который при выполнении в песочнице обращался к областям памяти за пределами допустимого диапазона. В результате нарушитель, действующий удалённо, без какой-либо аутентификации (достаточно отправить вредоносный запрос) получал возможность выполнить произвольный код.

Оценка по шкале CVSS версии 3.1 составила 9,8 балла из десяти возможных, что соответствует критическому уровню. Показатели CVSS v2.0 достигли максимальных десяти баллов. Вектор атаки выглядит так: доступ по сети, низкая сложность эксплуатации, не требуются привилегии и взаимодействие с пользователем. Иными словами, достаточно отправить на уязвимый сервер один запрос, чтобы полностью скомпрометировать приложение. Аналитики подчёркивают: уязвимость затрагивает все популярные операционные системы, включая Linux, Windows и macOS.

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

Разработчик библиотеки (Node.js Foundation) оперативно выпустил исправление в версии 3.11.3. Рекомендуется немедленно обновить vm2 до последней сборки. Для тех, кто использует пакетный менеджер NPM, достаточно выполнить команду "npm update vm2". Если обновление по каким-либо причинам невозможно, необходимо временно отключить функционал, принимающий пользовательский JavaScript, либо ограничить доступ к уязвимым точкам входа с помощью межсетевого экрана (firewall) или средств обнаружения вторжений (IDS). Однако эти меры лишь снижают риск, а не устраняют его полностью.

Стоит отметить, что это не первая серьёзная проблема в vm2. В прошлом году в библиотеке уже находили критические ошибки, приводившие к выходу из песочницы. Каждый такой инцидент напоминает: даже проверенные компоненты с открытым исходным кодом требуют постоянного мониторинга уязвимостей. Специалистам по информационной безопасности следует регулярно сверять используемые версии с каталогами BDU и CVE, а также настроить автоматическое уведомление о выходе патчей.

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

Ссылки

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