Критическая уязвимость удаленного выполнения кода найдена в vm2

Исследователи из GitLab обнаружили критическую уязвимость обхода песочницы в популярной Node.js-библиотеке vm2, получившую максимальную оценку 10.0 по шкале CVSS. Как сообщает GitLab Blog, проблема позволяет выполнять удаленный код с использованием конфигурации прямо из официального файла README.

Критическая уязвимость удаленного выполнения кода найдена в vm2

Критическая брешь в популярной библиотеке для Node.js

Группа исследователей угроз компании GitLab зафиксировала критическую уязвимость обхода песочницы в библиотеке vm2, которая широко применяется разработчикам для изоляции ненадежного кода в экосистеме Node.js. Найденная проблема получила максимальную оценку опасности в 10.0 баллов по стандарту CVSS 3.1. Специалисты выявили эту уязвимость с помощью собственных автоматизированных инструментов на базе искусственного интеллекта. Опасность ситуации заключается в том, что вектор атаки базировался на конфигурации, скопированной напрямую из раздела быстрых примеров в официальном файле документации README самой библиотеки. Любые приложения, запускающие vm2 версии 3.11.6 или более ранней с активированной опцией require.external, должны рассматриваться как подверженные прямому риску эксплуатации.

Предыстория и контекст безопасности

Программные песочницы в языках программирования традиционно привлекают внимание исследователей безопасности из-за сложности полной изоляции контекстов выполнения. Библиотека vm2 неоднократно становилась объектом внимания экспертов из-за возникающих проблем с изоляцией, несмотря на ее широкое распространение в сообществе разработчиков Node.js. В данном случае исследователи из GitLab провели проверку собственной инфраструктуры сразу после обнаружения проблемы и убедились, что сама компания не использует уязвимую библиотеку в своих продуктах и сервисах.

Как устранена уязвимость и в чем ее ограничения?

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

Кого затрагивает уязвимость и необходимые меры

Проблема затрагивает всех пользователей, которые полагаются на библиотеку vm2 для изоляции кода в приложениях на Node.js. По данным GitLab Blog, обновление до версии 3.11.7 является обязательным шагом, однако оно не решает проблему полностью, если разработчики продолжают использовать потенциально опасные настройки. Пользователям рекомендуется не только обновиться, но и тщательно пересмотреть параметры конфигурации, избегая использования избыточных прав и небезопасных значений по умолчанию.

Что будет дальше

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

Итог

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