Критическая уязвимость, позволяющая выйти из изолированной среды (sandbox), была обнаружена и исправлена в isolated-vm — библиотеке для выполнения JavaScript-кода в изолированном процессе. При эксплуатации эта уязвимость могла позволить злоумышленникам перехватить поток управления хостом, что могло привести к удаленному выполнению кода.
Isolated-vm загружается более 1 миллиона раз в неделю и также используется в качестве прямого или опционального компонента в других проектах, включая фреймворки автоматизации AI-агентов с открытым исходным кодом, такие как n8n, Sim.ai, Mastra и Activepieces. Его цель — выполнять непроверенный пользовательский JavaScript-код внутри изолированной среды, созданной с помощью функции Isolate в V8 — движке JavaScript от Chrome и Node.js.
«Безопасное выполнение непроверенного JavaScript — одна из самых сложных проблем в экосистеме Node.js, и её история полна неудач», — заявил Крис Стайку, ведущий исследователь компании по безопасности приложений Edor Labs, который обнаружил уязвимость. «Vm2, долгие годы бывший стандартным решением, накопил более двадцати задокументированных взломов до того, как был объявлен устаревшим».
Однако isolated-vm использует другой архитектурный подход и опирается на Isolate от V8 — тот же примитив, который Google Chrome применяет для изоляции кода, выполняемого в разных вкладках браузера. Это надежный и хорошо протестированный механизм, критически важный для безопасности браузера.
Но эта уязвимость, которую Endor Labs описывает как путаницу типов (type confusion), находилась в C++-коде связки библиотеки, который передает данные в V8, а не в самом механизме изоляции.
«Идеально надежный строительный блок был подорван слоем привязки, обернутым вокруг него», — сказал Стайку. «По мере того как AI-агенты и платформы автоматизации делают выполнение непроверенного кода стандартным требованием, слой привязки вокруг вашей изолированной среды заслуживает первостепенного внимания к безопасности».
Разработчики isolated-vm оперативно исправили уязвимость в версиях 7.0.1 и 6.2.0, выпущенных в начале этого месяца. Однако уведомление о безопасности вместе с подробностями об ошибке были опубликованы сегодня.
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Lucian Constantin




