Критическая уязвимость в платформе n8n обходит пять уровней защиты
Критическую уязвимость в платформе n8n обнаружили в конце декабря 2025 года. Ей присвоили CVV-2026-25049 и оценку 9,4 балла из 10 по шкале оценки уязвимостей CVSS. CVV-2026-25049 позволяет выполнять произвольные команды на сервере без аутентификации.
Обнаружившая проблему исследовательская команда BugDazz AI передала сведения разработчикам n8n. Они уже выпустили патч в версиях 1.123.17 и 2.5.2.
Опенсорсный инструмент для автоматизации бизнес-процессов. Платформа интегрируется с полутора тысячами сервисов — от Slack и Google Sheets до баз данных и AI-инструментов. Команды разработчиков используют n8n для создания внутренних инструментов и запуска критичных для бизнеса процессов.
Исследователи начали с анализа старого бага CVE-2025-68613, который закрыли в версии 1.120.4. Тогда разработчики внедрили защиту от выполнения произвольного кода — она блокировала обращение к конструктору объектов через точечную и скобочную нотацию в JavaScript-выражениях.
Разработчики n8n реализовали пять уровней защиты: регулярные выражения для блокировки опасных паттернов, анализ структуры кода через AST, проверка доступа к свойствам во время выполнения, удаление опасного контекста из обычных функций, очистка опасных свойств типа eval и Function. Однако во всех пяти уровнях не учли связку деструктуризации и стрелочных функций.
Специалисты тестировали разные способы обхода: доступ к конструкторам, манипуляции с прототипами, методы кодирования. После 150 провалов они изменили подход. Анализ исходных данных показал, что защита основана на регулярном выражении, которое блокирует только конструкцию .constructor. К конструктору объектов через деструктуризацию JavaScript можно обратиться свободно — этот синтаксис не содержит нужный паттерн и проходит мимо проверок.
Стрелочные функции используют лексический this, который не проходит санитизацию. Каждый уровень защиты анализировал код независимо и пропускал его. Это обеспечило возможность выполнения вредоносного кода.
Атака работает через внедрение вредоносного JavaScript в узлы рабочих процессов. Особенно опасно использование публичных вебхуков без аутентификации. Злоумышленник создаёт процесс с открытым вебхуком, добавляет одну строчку кода, активирует — и любой из интернета может запускать команды на сервере.
Исследователи создали демонстрационное чат-приложение. Пользователи видели интерфейс с обещаниями защищённой передачи сообщений. Каждое сообщение отправлялось на вредоносный вебхук и вызывало выполнение команд на сервере.
Успешная эксплуатация уязвимости обеспечивает полный контроль над сервером. Можно украсть учётные данные, включая API-ключи и пароли к базам. n8n обычно имеет доступ к внутренним системам организации, что позволяет атакующим переключиться на подключённые сервисы и API. Возможна установка бэкдора для долгосрочного доступа.