Разработчики платформы автоматизации рабочих процессов n8n выпустили внеплановые обновления, устраняющие четыре уязвимости высокого уровня опасности. Патчи затронули версии 2.28.1, 2.27.4 и 1.123.61. О проблемах сообщил исследователь безопасности под псевдонимом Jubke, опубликовавший детали в GitHub Security Advisories. Уязвимости охватывают как свежие ветки на базе движка 2.x, так и более старые версии 1.x.
Детали уязвимостей
Наиболее опасная уязвимость связана с обходом ограничения "Allowed HTTP Request Domains" через MCP-коннектор AI-агентов. Функция AI Agents появилась в n8n как отдельный модуль, включаемый переменной "N8N_ENABLED_MODULES=agents". Если администратор активировал этот режим и предоставил рядовому пользователю доступ к shared credential (учётным данным общего доступа) с наложенным ограничением на целевые домены, атакующий мог перенаправить MCP-инструмент на произвольный URL. В результате секрет, хранящийся в credential, уходил на внешний сервер, контролируемый злоумышленником. Проблема не затрагивает инстансы без модуля агентов.
Вторая уязвимость затрагивает механизм создания и импорта рабочих процессов. Аутентифицированный пользователь с правом "workflow:create" мог через сохранение или импорт специально сформированного workflow загрязнить прототип объекта "Object.prototype". Эта техника, известная как prototype pollution, позволяла обойти аутентификацию: неавторизованный HTTP-запрос начинал распознаваться как запрос от привилегированного пользователя. В результате злоумышленник без логина мог получить список всех учётных записей инстанса, включая адреса электронной почты, роли и статус MFA, а также перечислить проекты. Кроме того, загрязнение глобального состояния могло привести к отказу в обслуживании отдельных частей системы до перезагрузки.
Третья уязвимость связана с механизмом обмена токенами (token exchange). Если администратор настраивал несколько доверенных внешних провайдеров идентификации (issuers), сервер n8n сопоставлял локальные учётные записи с токенами исключительно по значению "sub" (subject) из JWT, игнорируя поле "iss" (issuer). Два разных провайдера, выдающие токены с одинаковым "sub", автоматически привязывались к одному и тому же локальному аккаунту. Если злоумышленник мог получить валидный токен от любого из доверенных провайдеров, в котором "sub" совпадал с "sub" целевого пользователя другого провайдера, он аутентифицировался под жертвой и получал полный доступ к её аккаунту. Проблема проявлялась только при включённом обмене токенами и наличии более одного внешнего issuer.
Четвёртая уязвимость позволяет украсть заголовки аутентификации, внедрённые в shared credential, через выражение пагинации HTTP-запроса. Когда к HTTP-запросу с пагинацией применяется credential с аутентификацией через заголовок, секрет попадает в объект "$request.headers", доступный для вычисления выражений пагинации. Пользователь с правами редактирования рабочего процесса мог прочитать секрет из "$request.headers", скопировать его в данные элемента "item" и затем отправить на внешний сервер с помощью другого HTTP-узла. Механизм срабатывал только при использовании движка выражений N8N_EXPRESSION_ENGINE=vm и при доступе к пагинированным workflow с shared credentials.
Все четыре уязвимости не имеют присвоенных идентификаторов CVE, но классифицированы как High по шкале CVSS v4. Для каждой из них разработчики выпустили патчи в указанных версиях. Исследователь Jubke рекомендует немедленное обновление. В качестве временных мер, если обновление невозможно, администраторам следует отключить модуль AI Agents, ограничить credential sharing, сократить число доверенных issuer до одного или вовсе отключить token exchange, а также не предоставлять доступ к пагинированным HTTP-запросам недоверенным пользователям.
n8n широко используется для интеграции облачных сервисов и автоматизации бизнес-процессов, поэтому утечка учётных данных или несанкционированный доступ к аккаунтам могут привести к компрометации связанных систем. Обновление до патченных версий рекомендуется всем пользователям, включая владельцев малых инстансов и крупных корпоративных развёртываний. Особое внимание следует уделить инстансам, где задействованы AI-агенты или внешние провайдеры аутентификации.
Логика эксплуатации этих уязвимостей показывает, что современные платформы автоматизации сталкиваются с рисками, связанными с расширением функциональности для конечных пользователей. Разработчикам всё чаще приходится учитывать сценарии, в которых даже ограниченный доступ к общим ресурсам может быть использован для извлечения секретов или обхода политик безопасности.
Ссылки
- https://github.com/n8n-io/n8n/security/advisories/GHSA-h44j-f5r5-ph73
- https://github.com/n8n-io/n8n/security/advisories/GHSA-75qm-gp28-rcq9
- https://github.com/n8n-io/n8n/security/advisories/GHSA-mq3m-f8x3-579w
- https://github.com/n8n-io/n8n/security/advisories/GHSA-q3j5-8vrg-4p9q