Угрозы

Критическая уязвимость в n8n (CVE-2026-25049): RCE через выражения в сценариях

Артем Сафонов
By Артем Сафонов , Аналитик угроз
Критическая уязвимость в n8n (CVE-2026-25049): RCE через выражения в сценариях
Image by Anonhaven

В популярной платформе автоматизации n8n обнаружена критическая уязвимость CVE-2026-25049 с оценкой 9.4 по CVSS, которая позволяет выполнить произвольные команды на сервере через выражения в сценариях. При успешной атаке злоумышленник получает полный контроль над инстансом n8n, доступ к файлам, базам данных и хранилищу учетных данных, а также может использовать сервер как точку опоры для дальнейшего продвижения в сети. Проблема затрагивает все версии младше 1.123.17 и 2.5.2 включительно и уже сопровождается техническими разбором и proof‑of‑concept‑эксплойтами (демонстрационные реализации, подтверждающие возможность атаки).

Разработчики столкнулись с классической ситуацией, когда данные внезапно начинают выполняться как код. n8n позволяет использовать в параметрах узлов выражения в двойных фигурных скобках, вроде {{ $json["remote.origin.url"] }}, которые движок подставляет и вычисляет во время выполнения сценария. Исследователи из Endor Labs описывают уязвимость как выход за пределы безопасной обработки выражений: из‑за ошибки в логике фильтрации и проверок типов злоумышленник может обойти песочницу выражений и добиться выполнения произвольного JavaScript с правами процесса n8n. В результате становится возможным читать файлы, запускать системные команды, обращаться к базам данных и извлекать секреты из встроенного хранилища учетных данных.

Важно, что CVE-2026-25049 появилась не просто так, а как исправление уже закрытой критической уязвимости CVE-2025-68613. Тогда разработчики усилили фильтрацию выражений, но часть векторов обхода осталась, и исследователи смогли подобрать менее очевидный синтаксис JavaScript, который проходит через проверки и все равно вырывается из песочницы. В публичных разборах показывают полезные нагрузки, использующие нетривиальные конструкции вроде цепочек доступа к свойствам через массивы или обращение к конструктору функции, чтобы получить доступ к объекту process и дальше к системным вызовам. В сочетании с возможностью вынести уязвимое выражение в конфигурацию Git‑узла это превращается в "минное поле": достаточно один раз подложить вредоносный конфиг, после чего каждый запуск сценария с этим репозиторием будет приводить к удаленному выполнению команд.

Если злоумышленник имеет аккаунт в n8n с правом создавать или редактировать сценарий, ему достаточно внедрить одну строку JavaScript в параметр узла, чтобы при выполнении сценария код начал выполнять системные команды на хосте. Дополнительно исследователи обращают внимание на связку с веб-хуками: можно создать сценарий с публичным веб‑хуком без авторизации, поместить внутрь выражение, эксплуатирующее уязвимость, и после публикации любой желающий сможет дергать этот URL и удаленно выполнять команды на сервере. Дальше включается стандартный набор: кража API‑ключей, токенов облачных сервисов, паролей к базам, доступ к файловой системе, подмена существующих сценариев и внедрение логики вроде "при создании счета отправь копию на сторонний почтовый ящик".

n8n часто разворачивают внутри контура, рядом с CRM, ERP, платежными сервисами и внутренними базами, а значит компрометация инстанса - это не просто отказ одного сервиса, а потенциальный доступ ко всей схеме интеграций. В зависимости от конфигурации атакующий может использовать сервер n8n как промежуточный узел для выхода в облако, к внутренним API, а в перспективе - и к критичным системам, которые в обычном режиме снаружи недоступны.

Проблема затрагивает версии ниже 2.5.2 и 1.123.17.

  1. Обновление: Срочно обновите n8n до версий 2.5.2, 1.123.17 или выше.
  2. Ревизия прав: Проверьте, кто имеет доступ к созданию сценария.
  3. Изоляция: Отключите ненужные публичные веб-хуки и изолируйте сервер n8n на сетевом уровне, ограничив его права доступа к другим системам.
CVE-2025-68613 CVE-2026-25049 DevOps RCE n8n Уязвимость