Специалисты показали, как через формы n8n можно читать любые файлы на хосте.

В популярной платформе для автоматизации рабочих процессов n8n обнаружили критическую уязвимость, которая позволяет захватить уязвимый инстанс без логина и пароля. Достаточно отправить специально сформированный запрос, и злоумышленник получает возможность вытащить секреты, подделать доступ администратора, а при развитии атаки — выполнить команды на сервере.
Проблема получила идентификатор CVE-2026-21858 (оценка CVSS: 10.0) и название Ni8mare – так её окрестили в Cyera Research Labs. По данным n8n, уязвимость позволяет читать файлы на сервере через выполнение определённых workflow, связанных с формами. Если в организации такие формы используются для загрузки данных и дальнейшей обработки, риск особенно неприятный: атакующий может «подсунуть» системе не загруженный файл, а произвольный локальный файл с диска и заставить цепочку обработки передать его содержимое дальше.
Примечательно, что это уже четвёртая критическая уязвимость в n8n, о которой стало известно за последние две недели. Ранее компания раскрыла CVE-2025-68613 (риск RCE для аутентифицированных пользователей при определённых условиях), CVE-2025-68668 (N8scape — обход песочницы, позволяющий запускать команды на хосте при наличии прав на создание/редактирование workflow) и CVE-2026-21877 (опасная загрузка файлов, ведущая к компрометации инстанса). В отличие от них, новая CVE-2026-21858 не требует никаких учётных данных и строится на путанице вокруг заголовка Content-Type.
Технически проблема завязана на том, как n8n разбирает входящие запросы вебхуков и формы. При получении запроса платформа смотрит на Content-Type и выбирает обработчик: если это multipart/form-data, включается парсер загрузки файлов; если нет — обычный парсер тела запроса. Далее начинается самое важное: в одном случае результат попадает в структуру, где ожидаются файлы (req.body.files), в другом — в обычное тело (req.body). Исследователи Cyera обнаружили уязвимый сценарий в обработчике отправки формы: там вызывается функция работы с файлами, но перед этим не проверяется, что Content-Type действительно multipart/form-data. В итоге атакующий может сам «сформировать» объект req.body.files и управлять параметром пути к файлу.
Практический смысл этого прост: вместо копирования реально загруженного файла злоумышленник заставляет систему скопировать любой локальный файл с сервера. А затем любой следующий шаг workflow получает содержимое этого файла как будто это «обычная загрузка пользователя». Дальше уже вопрос фантазии и конфигурации: можно читать конфиги, ключи, токены и базу данных.
Один из описанных сценариев выглядит особенно жизненно. Представьте сайт с чат-интерфейсом, который отвечает на вопросы о товарах, опираясь на файлы спецификаций, загруженные через Form-workflow в базу знаний. В таком случае атакующий может с помощью произвольного чтения добраться до базы n8n (например, до database.sqlite), вытащить оттуда идентификатор админа, почту и хэш пароля, затем прочитать конфиг с секретом шифрования, после чего собрать поддельную сессию и получить админский доступ в обход аутентификации. А когда панель администратора уже в руках — остаётся добавить workflow с нодой Execute Command и получить RCE.
В Cyera подчёркивают, что n8n часто становится центральным хранилищем всего самого ценного – API-ключей, OAuth-токенов, доступов к базам, облакам и внутренним сервисам. Поэтому компрометация одного инстанса может мгновенно превратиться в доступ к инфраструктуре.
Уязвимость затрагивает все версии n8n до и включая 1.65.0 и исправлена в 1.121.0 (релиз от 18 ноября 2025 года). Пользователям советуют срочно обновиться до исправленной версии или новее, по возможности не выставлять n8n в интернет, включить обязательную аутентификацию для всех форм и ограничить публичные webhook/form эндпоинты хотя бы временно, если быстро обновиться не получается.