Иконка n8n с трещинами на фоне кода — уязвимость sandbox escape

n8n-песочница взломана: редакторы запускают команды ОС

Платформа low-code автоматизации n8n устранила опасную уязвимость, позволявшую аутентифицированному редактору рабочих процессов выполнять произвольные команды операционной системы на сервере. Проблема обнаружена специалистами компании Security Joes при анализе февральского исправления для CVE-2026-27577.

Уязвимость затрагивает версии n8n ниже 2.31.5, а также диапазон от 2.32.0 до 2.32.1. Разработчики выпустили закрывающие брешь сборки 2.31.5 и 2.32.1. Опасность оценена в 8.7 балла по шкале CVSS 4.0 (высокий уровень), идентификатор GHSA-gv7g-jm28-cr3m. CVE на момент публикации не назначен.

Как работает обход песочницы

Внутренняя «песочница» n8n изолирует JavaScript-выражения вида = {{ $json.email }}. Специальный переписчик AST перенаправляет идентификаторы в контролируемый контекст данных, не позволяя им обращаться к реальным объектам Node.js. Однако в версии 2.31.4 компонент VariablePolyfill.ts помечал стрелочные функции как пустую операцию. Это позволяло короткому телу стрелки, например () => process, разрешить глобальный объект Node.js, а не изолированный аналог.

Второй аспект атаки касается проверок свойств. n8n анализирует только статические имена в выражениях доступа к свойствам, но метод Reflect.get() передаёт имя свойства как аргумент функции. Исследователи использовали эту особенность, чтобы получить process.getBuiltinModule, загрузить child_process и выполнить команду на хосте.

«Ни одной из этих двух особенностей по отдельности недостаточно для эксплуатации. И ни одна не покрывалась тестами», — отметили в Security Joes.

Что под угрозой и как защититься

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

Security Joes предупреждают: такой доступ может раскрыть переменную N8N_ENCRYPTION_KEY и позволить расшифровать сохранённые в n8n учётные данные. Кроме того, открываются пути к подключённым базам данных, внутренним сервисам и облачным API.

На момент подготовки отчёта фактов эксплуатации в дикой природе не зафиксировано. Тем не менее, администраторам настоятельно рекомендуется установить исправления. Промежуточные меры (ограничение доступа к экземпляру и редактированию рабочих процессов) разработчики считают неполными и временными.

Для обнаружения следов возможной компрометации рекомендуется:

  • проверить недавно созданные или изменённые рабочие процессы на предмет неожиданных стрелочных функций или обфусцированного JavaScript;
  • отслеживать запуск оболочек, PowerShell, curl или wget как дочерних процессов n8n либо Node.js;
  • при подозрительной активности — сменить все учётные данные, к которым имел доступ экземпляр n8n.

Исправленный переписчик добавляет специальный обработчик ArrowFunctionExpression, который корректно направляет идентификаторы из коротких стрелочных тел через контекст данных.

Цепочка инцидентов с 2025 года

Найденная уязвимость продолжает серию обходов песочницы выражений, которые n8n исправляет с 2025 года. В феврале 2026-го была закрыта брешь CVE-2026-27577 с критической оценкой 9.4. Тогда исследователи также обнаружили, что объект process просачивается через слой перезаписи идентификаторов в необработанном виде.

Security Joes первоначально оценили новую проблему примерно в 9.4 балла, однако вендор опубликовал итоговый рейтинг 8.7. О скомпрометированных облачных инстансах n8n Cloud в рекомендациях не сообщается; патча для ветки 1.x не предусмотрено.

Эксперты сообщили о бреши 15 июля через программу раскрытия уязвимостей n8n. Фиксированные версии опубликованы 22 июля. Исследователи подтвердили PoC на версиях 2.30.4 как в составе официального пакета рабочих процессов, так и на локальной инсталляции.

Читайте также: Как компьютерные вирусы эволюционировали от простых угроз до сложных атак на бизнес-платформы

Источник: The Hacker News

Похожие записи