Критическая уязвимость удалённого исполнения кода позволяет полностью захватить платформу автоматизации рабочих процессов на базе ИИ n8n.

n8n,уязвимость,rce,безопасность,cve-2026-21858,llm

Критическая уязвимость с рейтингом 10.0 была обнаружена в платформе автоматизации n8n, используемой для LLM-агентов. Уязвимость CVE-2026-21858 позволяет неаутентифицированным хакерам считывать локальные файлы и, в конечном счете, захватывать админдоступ к системе, получая ключи API и корпоративные данные.

Исследователи обнародовали подробности о критической уязвимости, которая была незаметно устранена в n8n — платформе, которую многие компании используют для создания агентов на базе больших языковых моделей (LLM) и автоматизированных рабочих процессов. Эта лазейка может позволить злоумышленникам без аутентификации полностью захватить локальные развертывания n8n, выполнять команды в базовой системе и извлекать конфиденциальные корпоративные данные, к которым обычно имеют доступ рабочие процессы.

«Радиус поражения скомпрометированного n8n огромен», — отметили исследователи из компании Cyera, занимающейся безопасностью данных, которые обнаружили уязвимость, в своем отчете об уязвимости. «N8n связывает бесчисленное множество систем: ваш организационный Google Диск, ключи API OpenAI, данные Salesforce, системы IAM, платежные процессоры, базы данных клиентов, конвейеры CI/CD и многое другое. Это центральная нервная система вашей инфраструктуры автоматизации».

Разработчики n8n исправили эту проблему в версии 1.121.0, выпущенной 18 ноября, однако в примечаниях к выпуску тогда не упоминались исправления безопасности. Это, по-видимому, стандартная процедура, поскольку уведомления о безопасности n8n намеренно публикуются с задержкой. С тех пор проект устранил другие критические уязвимости RCE, такие как CVE-2025-68613, CVE-2025-68668 и CVE-2026-21877, поэтому пользователям следует убедиться, что они всегда обновляются до последней доступной версии.

Путаница с Content-Type приводит к произвольному чтению файлов

Уязвимость, отслеживаемая как CVE-2026-21858, имеет рейтинг критичности 10.0 и позволяет осуществить двухэтапную атаку. Во-первых, она позволяет неаутентифицированным злоумышленникам, имеющим доступ к веб-формам n8n, слить внутренние файлы с сервера n8n. Это происходит потому, что функция formWebhook, используемая узлами n8n Form для приема данных, не проверяет, установлен ли в поле Content-Type POST-запроса, отправленного пользователем, multipart/form-data.

Представьте себе весьма распространенный сценарий использования, когда n8n применяется для создания чат-интерфейса, позволяющего пользователям загружать файлы в систему, — например, портала клиентской поддержки, принимающего скриншоты ошибок или журналы, HR-системы для подачи резюме или базы знаний, куда сотрудники могут загружать документы для последующего поиска через чат-бота на базе LLM.

В обычном потоке, когда тип содержимого — multipart/form-data, а тело запроса содержит определение files:, n8n анализирует запрос с помощью своей функции parseFormData(), которая использует библиотеку Node.js Formidable для безопасной обработки загрузок файлов, сохраняя файл во временной директории со случайным путем перед заполнением глобальной переменной req.body.files именем файла и его расположением.

Однако, если запрос имеет другой тип содержимого, например application/json, n8n будет анализировать тело запроса с помощью другой функции под названием parseBody(), которая работает иначе. Эта функция извлекает раздел данных запроса для заполнения глобальной переменной req.body.data, но также извлекает любой другой раздел из запроса для заполнения соответствующих переменных req.body.[имя раздела] их содержимым.

Поскольку formWebhook не проверяет, действительно ли запрос с разделом files является multipart/form-data, он вызовет неправильную функцию парсинга для его тела, что приведет к заполнению переменной req.body.files значениями, контролируемыми пользователем, такими как имена файлов и пути. Затем он вызовет функцию copyBinaryFile() для копирования любых файлов из переменной req.body.files — которые должны быть временными случайными путями — в постоянные места хранения для использования другими узлами/рабочими процессами, что приведет к потенциальным атакам с обходом путей, при которых законные файлы в системе могут быть перезаписаны или загружены в другое место в рабочем процессе.

Чтобы использовать эту уязвимость, злоумышленник может отправить запрос как application/json с разделом files, указывающим известные пути к файлам из локальной системы, включая конфигурационные файлы n8n, содержащие конфиденциальные учетные данные и токены. Если эти файлы будут добавлены в контекст узла чат-бота на базе LLM, злоумышленник сможет затем использовать чат-интерфейс, чтобы задавать вопросы об этих файлах и раскрывать их содержимое.

От произвольного чтения файлов до прав администратора

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

Файлы cookie сеанса — это строки, хранящиеся в браузере пользователя для поддержания его аутентифицированного статуса в течение определенного периода времени. Злоумышленники регулярно крадут файлы cookie сеанса с скомпрометированных систем, чтобы обойти аутентификацию и войти в систему под видом своих жертв на различных веб-сайтах.

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

Проблема в том, что вся информация, необходимая для воссоздания файлов cookie сеанса, находится в локальных файлах. Уникальный секретный ключ хранится в /home/node/.n8n/config, а все записи пользователей хранятся в файле /home/node/.n8n/database.sqlite. Утечка содержимого этих двух файлов позволяет злоумышленникам воссоздать файлы cookie n8n-auth для любых пользователей, включая администраторов.

Получив права администратора, злоумышленники могут создавать новые рабочие процессы, а n8n предлагает узел под названием Execute Command, который делает именно то, что подразумевает его название, — выполняет команды в базовой операционной системе с привилегиями службы n8n.

«Представьте себе крупное предприятие с более чем 10 000 сотрудников, использующее один сервер n8n», — написали исследователи в своем отчете. «Компрометация экземпляра n8n означает не просто потерю одной системы — это передача злоумышленникам ключей от всего. Учетные данные API, токены OAuth, подключения к базам данных, облачное хранилище — все централизовано в одном месте. N8n становится единой точкой отказа и золотой жилой для злоумышленников».

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Qual-score: 4/9
Bayan-score: 0.925287843