Как критическая уязвимость CVE-2026-22709 разрушает изоляцию в популярной библиотеке vm2?

Популярная библиотека Node.js под названием vm2, предназначенная для запуска ненадежного кода в защищенной среде, столкнулась с критической уязвимостью выхода из песочницы (sandbox escape). Идентифицированная как CVE-2026-22709, эта брешь в безопасности получила практически максимальную оценку серьезности CVSS — 9.8 из 10.0. Уязвимость классифицируется как возможность выполнения произвольного кода, что позволяет злоумышленникам обойти механизмы изоляции библиотеки и получить доступ к операционной системе хоста. Библиотека функционирует за счет перехвата и проксирования объектов JavaScript для блокировки доступа к основной системе, однако новый вектор атаки демонстрирует критический сбой в этой архитектуре.
Как критическая уязвимость CVE-2026-22709 разрушает изоляцию в популярной библиотеке vm2?
Изображение носит иллюстративный характер

Техническая первопричина проблемы кроется в некорректной санитарной обработке (санитизации) обработчиков объектов Promise в определенных версиях библиотеки. Механизм защиты можно обойти через манипуляции с колбэками Promise.prototype.then и Promise.prototype.catch. Исследователи выяснили, что асинхронные функции в JavaScript возвращают объекты globalPromise, а не localPromise. В то время как объекты localPromise подвергались корректной очистке, методы globalPromise (в частности, .then и .catch) не проходили надлежащую проверку, что создало вектор для побега из изолированной среды.

Уязвимость была обнаружена в версии vm2 3.10.0. Для устранения угрозы разработчики оперативно выпустили промежуточное исправление в версии 3.10.2, однако окончательной и настоятельно рекомендуемой версией является vm2 3.10.3. Данное обновление содержит не только исправления для CVE-2026-22709, но и патчи для дополнительных сценариев выхода из песочницы, что делает его критически важным для всех пользователей библиотеки. Компания Semgrep, занимающаяся вопросами безопасности, также предоставила анализ методов смягчения последствий данной угрозы.

Открытие уязвимости является заслугой исследователей Пейтона Кеннеди (Peyton Kennedy) и Криса Стайку (Cris Staicu) из компании Endor Labs, которые детально проанализировали механизм обхода. Сопровождением и исправлением библиотеки занимается ее мейнтейнер Патрик Симек (Patrik Simek). Признание проблемы и скорая реакция сообщества подчеркивают высокие риски, связанные с использованием инструментов виртуализации кода в промышленных средах без должного надзора.

Исторический контекст показывает, что библиотека vm2 сталкивается с постоянным потоком проблем безопасности в последние годы. CVE-2026-22709 пополнила длинный список предыдущих уязвимостей, среди которых зафиксированы: CVE-2022-36067, CVE-2023-29017, CVE-2023-29199, CVE-2023-30547, CVE-2023-32314, CVE-2023-37466 и CVE-2023-37903. Регулярность появления новых способов обхода защиты ставит под сомнение надежность используемой архитектуры проксирования для обеспечения полной изоляции ненадежного кода.

Судьба проекта vm2 претерпела значительные изменения за последние несколько лет. В июле 2023 года, после обнаружения CVE-2023-37903, Патрик Симек объявил о прекращении поддержки проекта. Однако ситуация изменилась: к октябрю 2025 года страница безопасности проекта была обновлена, и теперь там указано, что версии vm2 3.x активно поддерживаются. Упоминания о прекращении работы были удалены из файла README на GitHub, хотя мейнтейнер открыто предупреждает, что новые обходы защиты, вероятно, будут обнаружены и в будущем.

В качестве немедленной меры защиты пользователям предписано обновиться до версии 3.10.3. Тем не менее, учитывая архитектурные сложности vm2, эксперты и сами разработчики предлагают рассмотреть альтернативы. Одним из преемников считается библиотека isolated-vm, которая опирается на нативный интерфейс Isolate движка V8, предлагая более прочный фундамент безопасности, чем модель vm. Кроме того, для обеспечения более строгой изоляции и логического разделения компонентов мейнтейнеры рекомендуют использовать Docker, который гарантирует изоляцию на уровне операционной системы, а не только на уровне приложения.


Новое на сайте

20074Я не получил структуру статьи для анализа. Вместо содержания статьи в запросе указано... 20072Эффект красоты решает исход собеседования до первых слов 20069Как черта характера крадёт деньги на переговорах 20068Карточная игра против главной дисфункции команды 20067Какие три нарратива способны провести компанию сквозь любой кризис? 20066Фотосинтез в глазах мышей: возможно ли это без превращения в растение? 20065СПКЯ стало СПМЯ: почему переименование болезни, затрагивающей миллионы женщин, заняло так... 20064Почему великая пирамида Гизы пережила все землетрясения за 4500 лет 20063Генетика Homo erectus: что зубная эмаль рассказала о наших предках 20062Кости в бухте Эребус: что кости моряков Франклина рассказывают спустя полтора века 20061Крупнейший плавучий ветрогенератор в мире: Китай испытывает установку у берегов Шанхая 20060Карие глаза младенца стали индиго после лечения от COVID-19 20058Почему серебряная чаша с Афиной пролежала в немецком лесу две тысячи лет? 20057Дыра в атмосфере солнца: вспышка достигла пика и может зажечь полярное сияние
Ссылка