🚨 n8n: ЕСЛИ ТЫ МОЖЕШЬ РЕДАКТИРОВАТЬ WORKFLOW — ТЫ ПОЧТИ МОЖЕШЬ ДЕЛАТЬ RCE

🧨 JFrog показали 2 уязвимости, которые превращают "песочницу" n8n в декорацию — и приводят к Remote Code Execution (RCE = удалённое выполнение кода, когда атакующий запускает свои команды на твоём сервере).

⚠️ Что нашли 🟥 CVE-2026-1470 (CVSS 9.9, критический): обход sandbox'а в Expression engine (это механизм, который выполняет выражения типа {{ переменная }} внутри автоматизаций) → выполнение произвольного кода на сервере с n8n. 🟧 CVE-2026-0863 (CVSS 8.5, высокий): обход ограничений Python Code node (блок для запуска Python-скриптов) в режиме Internal → выполнение кода на операционной системе.

🧠 Как это работает 🪤 Песочница (sandbox) — это защитный механизм: код выполняется в изолированной среде, чтобы не мог влезть в систему. 🕳 Но: в n8n выражения {{ }} по сути превращаются в JavaScript-код, который проходит через AST-валидацию (проверку структуры кода на "опасные команды"). 🔓 Исследователи нашли способ обмануть эту проверку: используя устаревший оператор JavaScript with (который почти никто не использует, поэтому защита его не учла), можно "протащить" доступ к запрещённым функциям (типа constructor, который даёт доступ к выполнению любого кода).

🐍 В Python-части:

Internal-режим = Python-скрипт запускается прямо на сервере рядом с главным процессом n8n (без контейнерной изоляции).

External-режим = Python работает в отдельном Docker-контейнере (есть барьер, хоть и не абсолютный).

Атака строится через особенности обработки ошибок в Python 3.10+: можно "вытащить" реальные объекты из исключений и добраться до запрещённых функций.

В КАКИХ ВЕРСИЯХ ЕСТЬ УЯЗВИМОСТЬ 🔧 CVE-2026-1470 (JavaScript): уязвимо всё раньше 1.123.17, а также версии 2.x раньше 2.4.5 и 2.5.1. ​ 🔧 CVE-2026-0863 (Python): уязвимо всё раньше 1.123.14, а также версии 2.x раньше 2.3.5 и 2.4.2. ​

🛡 Что делать 👥 Проверь права доступа: кто в вашей команде может создавать и менять workflow (автоматизации). На уязвимых версиях это фактически "ключи от сервера". ⬆️ Обнови до фикс-версий: 1.123.17+ для первой уязвимости или 1.123.14+ для второй (лучше взять самую свежую стабильную). ​ ⚠️ Проверь свои workflow после обновления: патч ужесточил валидацию {{ }}, так что некоторые легитимные выражения могут перестать работать (как у меня с промптером в Перплексити). Придётся переписать. 🐳 Если используешь Python Code node — переключись на режим External (запуск в контейнере), если нет критичной причины сидеть на Internal. 📊 Аудит: проверь логи на подозрительные выражения в {{ }} или странные Python-скрипты в workflow за последние недели.

💬 Кто у вас имеет право "править автоматизации" — и как вы это контролируете: ролями, code review, отдельным тестовым инстансом?

#AISECNEWS #n8nOPS #PENTESTLAB #AIAutomation