Побег из песочницы n8n: редактор рабочих процессов мог запускать команды ОС

· Безопасность
В платформе автоматизации n8n закрыли уязвимость высокой степени опасности: аутентифицированный редактор рабочих процессов мог вырваться из песочницы выражений и выполнять команды операционной системы с правами процесса n8n.

cover.svg

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

Что затронуто

Уязвимости подвержены версии до 2.31.5, а также диапазон от 2.32.0 до 2.32.1. Исправления вышли в 2.31.5 и 2.32.1. Идентификатор — GHSA-gv7g-jm28-cr3m, оценка по CVSS 4.0 составляет 8.7 (High); отдельный CVE на 27 июля 2026 года не присвоен. Патча для ветки 1.x в списке нет, а был ли затронут n8n Cloud, в бюллетене не сказано.

Администраторам советуют обновляться, а не полагаться на временные меры вроде ограничения доступа к экземпляру и редактирования процессов только доверенными пользователями — сам вендор называет эти меры неполными.

Как это работает

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

Вторая брешь скрывалась в проверках свойств: они анализировали статические имена, тогда как Reflect.get() получает запрашиваемое свойство как аргумент функции. Комбинируя оба недосмотра, исследователи добрались до process.getBuiltinModule, загрузили child_process и выполнили команду на хосте. Как отметила команда Security Joes, «ни одно из условий по отдельности не срабатывает — и ни одно не было покрыто тестами».

Чем это грозит

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

Остаточную брешь нашли 14 июля и сообщили о ней 15 июля, исправленные сборки вышли 22 июля. Защитникам рекомендуют проверить недавно созданные или изменённые процессы на подозрительные стрелочные функции и обфусцированный JavaScript, а также искать запуск оболочек, PowerShell, curl или wget как дочерних процессов n8n или Node.js.

Находка продолжает серию побегов из песочницы выражений, которые n8n закрывает с 2025 года; предыдущим был CVE-2026-27577 с оценкой 9.4, устранённый в феврале.


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

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.