Критическая уязвимость в SandboxJS: обнаружен баг, позволяющий удалённо выполнить произвольный код

vulnerability

Специалисты по информационной безопасности зафиксировали серьёзную угрозу для веб-приложений, использующих библиотеку SandboxJS. Речь идёт об уязвимости критического уровня опасности, которая позволяет злоумышленнику удалённо выполнить произвольный код на целевой системе. Инцидент уже получил идентификатор CVE-2026-43898 и занесён в Банк данных угроз безопасности информации под номером BDU:2026-09273.

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

SandboxJS - это популярная библиотека с открытым исходным кодом, предназначенная для изоляции и безопасного выполнения пользовательского JavaScript-кода в браузерной среде. Её широко используют разработчики, которым необходимо запускать динамические скрипты, поступающие от сторонних источников. В силу такой специфики любая ошибка в механизмах изоляции SandboxJS может обернуться серьёзными последствиями для безопасности конечного продукта.

Уязвимость обнаружена в функции createFunction(), которая находится в файле executorUtils.ts. Причина бага кроется в неверном управлении генерацией кода - это классический пример недостатка, относящегося к категории внедрения кода (CWE-94). Суть проблемы проста: функция createFunction() недостаточно тщательно проверяет и обрабатывает входные данные перед тем, как создать из них исполняемый код. В результате злоумышленник, действующий удалённо, может передать специально сформированный запрос, который обходит механизмы фильтрации и приводит к выполнению произвольного кода на стороне жертвы.

Важно подчеркнуть, что для эксплуатации этой уязвимости не требуется ни предварительной аутентификации, ни какого-либо взаимодействия с пользователем. Атакующему достаточно просто отправить вредоносный запрос по сети. Такая ситуация характерна для багов, получающих максимальную оценку по шкале CVSS. В данном случае обе системы оценки - CVSS 2.0 и CVSS 3.1 - присвоили уязвимости наивысший балл 10. Это делает её одной из самых опасных проблем, которые можно встретить в современном программном обеспечении.

На практике эксплуатация уязвимости может привести к полной компрометации системы. Злоумышленник способен получить полный контроль над браузерной средой, где выполняется SandboxJS. Речь идёт не только о краже данных - кукисов, токенов авторизации или содержимого форм. Возможен сценарий, при котором атакующий внедряет вредоносные скрипты, перенаправляет пользователей на фишинговые сайты или использует скомпрометированное приложение как точку входа для атак на внутреннюю инфраструктуру организации.

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

Производитель библиотеки - разработчик nyariv - уже подтвердил наличие проблемы и выпустил исправление. Уязвимость устранена в версии 0.9.6. Патч доступен в официальном репозитории проекта на платформе GitHub. Инженеры из nyariv рекомендуют всем пользователям SandboxJS немедленно обновить библиотеку до актуальной версии.

Однако одного обновления может быть недостаточно. Специалистам по информационной безопасности стоит пересмотреть практики использования подобных инструментов песочницы в целом. Любая библиотека, которая выполняет код от сторонних источников, требует особого внимания. Разработчикам настоятельно рекомендуется регулярно проверять журналы изменений, а также встраивать процессы автоматического обновления зависимостей в конвейеры сборки приложений.

Кроме того, стоит учесть, что уязвимость затронула все версии SandboxJS вплоть до 0.9.6. Это довольно широкий диапазон. Многие проекты могли годами использовать старые сборки, не обновляя их. Теперь таким командам придётся действовать быстро. Промедление грозит тем, что атакующие могут успеть нанести ущерб до того, как защитные механизмы будут приведены в порядок.

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

Резюмируя, можно сказать, что обнаруженный баг в SandboxJS - это классический пример критической уязвимости, которая может привести к полной компрометации приложения. Открытый доступ к эксплойту, высокая оценка по шкале CVSS и простота эксплуатации делают её приоритетной мишенью для злоумышленников. Разработчикам, использующим SandboxJS, необходимо действовать немедленно: обновить библиотеку и провести аудит безопасности своих проектов. Только так можно минимизировать риски и защитить пользовательские данные от потенциального хищения.

Ссылки

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