Критическая уязвимость удаленн... Заметка
GitLab на русском

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

Группа исследования угроз GitLab обнаружила критическую уязвимость побега из песочницы в библиотеке Node.js vm2, оцененную CVSS 3.1: 10.0. Эта уязвимость позволяет удаленно выполнять код и возникает из-за настроек по умолчанию в собственном README vm2. Уязвимость напрямую эксплуатируема в версиях vm2 3.11.6 и более ранних при включенном require.external. GitLab подтвердил, что не использует vm2, и уязвимость была частным образом сообщена и быстро исправлена в версии 3.11.7. Однако исправление этого конкретного эксплойта не полностью устраняет более широкую проблему конфигурационного риска. Разработчики, использующие require.external, должны вручную усилить конфигурации, ограничив require.root и установив контекст в 'sandbox'. Из-за истории повторяющихся ошибок побега из песочницы в vm2, рекомендуется избегать ее для действительно недоверенного кода и выбирать контейнеры или отдельные процессы. Уязвимость работает, позволяя коду в песочнице требовать сам vm2, получая доступ к функции require() хоста. Это позволяет создать вторую, неограниченную песочницу с полными возможностями выполнения. Исправление в версии 3.11.7 блокирует прямую атаку, но оставляет открытыми уязвимости, если require.root слишком широк.