
Комплексный инструмент обнаружения уязвимостей для экземпляров автоматизации рабочих процессов n8n. Обнаруживает критическую уязвимость CVE-2026-21858 (CVSS 10.0) без выполнения какой-либо эксплуатации.
Этический сканер безопасности для CVE-2026-21858 (уязвимость Ni8mare)
«Знание — сила, но только если им делиться ответственно».
Комплексный инструмент обнаружения уязвимостей для экземпляров автоматизации рабочих процессов n8n. Обнаруживает критическую уязвимость CVE-2026-21858 (CVSS 10.0) без выполнения каких-либо эксплойтов.
# Переход в каталог скриптов
cd ni8mare-scanner/scripts
# Установка зависимостей
pip install -r requirements.txt
# Проверка, уязвима ли версия
python n8n_scanner.py version-check 1.120.0
# Сканирование работающего экземпляра
python n8n_scanner.py scan https://n8n.example.com:5678
# Получение информации о CVE
python n8n_scanner.py info
Серьёзность: CVSS 10.0 (критическая)
Исправлено в: n8n v1.121.0
Обнаружено: Dor Attias (Cyera Research Labs)
Поддержка инструмента: CropNet на GitHub, исследовательская группа организации Schema.cx
Критическая уязвимость, позволяющая неавторизованным злоумышленникам читать произвольные файлы через путаницу типов контента (Content-Type confusion).
Этот сканер выполняет только неинвазивное обнаружение — никогда не эксплуатирует уязвимость.
# Проверка уязвимой версии
python n8n_scanner.py version-check 1.120.0
# Вывод: Статус 🔴 УЯЗВИМА (код выхода 2)
# Проверка безопасной версии
python n8n_scanner.py version-check 1.121.0
# Вывод: Статус 🟢 Не уязвима (код выхода 0)
# Базовое сканирование
python n8n_scanner.py scan https://n8n.example.com:5678
# Глубокое сканирование с выводом в JSON
python n8n_scanner.py scan https://n8n.example.com:5678 \
--intensity deep \
--format json \
--output report.json
# Пропуск запроса авторизации (для предварительно авторизованных сканирований)
python n8n_scanner.py scan https://n8n.example.com:5678 --no-confirm
# Создание файла целей
cat > targets.txt << EOF
https://n8n1.example.com:5678
https://n8n2.example.com:5678
https://n8n3.example.com:5678
EOF
# Сканирование всех целей
python n8n_scanner.py batch targets.txt --output results.csv --format csv
# Генерация YAML-конфигурации в стандартный вывод
python n8n_scanner.py generate-config --format yaml
# Генерация JSON-конфигурации в файл
python n8n_scanner.py generate-config --format json --output config.json
# Использование файла конфигурации для сканирования
python n8n_scanner.py scan https://n8n.example.com:5678 --config config.json
| Команда | Описание | Пример |
|---|---|---|
scan | Сканирование одной цели | python n8n_scanner.py scan <target> |
batch | Сканирование нескольких целей | python n8n_scanner.py batch targets.txt |
version-check | Проверка уязвимости версии | python n8n_scanner.py version-check 1.120.0 |
generate-config | Генерация шаблона конфигурации | python n8n_scanner.py generate-config --format yaml |
info | Отображение информации о CVE | python n8n_scanner.py info |
connectivity | Проверка подключения | python n8n_scanner.py connectivity <target> |
scanpython n8n_scanner.py scan <target> [OPTIONS]
Параметры:
--intensity, -i — интенсивность сканирования: light, medium, deep (по умолчанию: medium)--output, -o — путь к файлу вывода--format, -f — формат вывода: json, csv, html, text, markdown--timeout, -t — таймаут запроса в секундах (по умолчанию: 30)--delay, -d — задержка между запросами (по умолчанию: 2.0)--no-confirm — пропуск подтверждения авторизации--config, -c — путь к файлу конфигурации--verbose, -V — подробный вывод--json-logs — формат журналов JSON (для автоматизации)version-checkpython n8n_scanner.py version-check <version_or_url>
Коды выхода:
0 — версия безопасна (исправлена)1 — произошла ошибка2 — версия уязвимаПримеры:
# Проверка строки версии
python n8n_scanner.py version-check 1.120.0
# Проверка версии работающего экземпляра
python n8n_scanner.py version-check https://n8n.example.com:5678
# config.yml
scan:
intensity: medium
timeout: 30
rate_limit:
delay: 2.0
max_requests: 100
targets:
- https://n8n.example.com:5678
require_confirmation: true
output:
format: json
directory: ./reports
Доступны четыре предварительно настроенных профиля:
Генерация: python n8n_scanner.py generate-config --profile thorough
{
"target": "https://n8n.example.com:5678",
"version": "1.120.0",
"vulnerable": true,
"cve": "CVE-2026-21858",
"severity": "CRITICAL"
}
Target,Version,Vulnerable,CVE,Severity
https://n8n.example.com:5678,1.120.0,true,CVE-2026-21858,CRITICAL
Профессиональные HTML-отчёты со стилями и диаграммами.
Цветной, удобочитаемый вывод с индикаторами серьёзности.
Формат, удобный для документации, вики и отчётов.
# Сборка с Docker Compose
docker-compose build
# Выполнение команд
docker-compose run --rm scanner version-check 1.120.0
docker-compose run --rm scanner scan https://n8n.example.com:5678 --no-confirm
# Пакетное сканирование с подключённым файлом
docker-compose run --rm \
-v $(pwd)/targets.txt:/app/targets.txt \
scanner batch /app/targets.txt
ni8mare-scanner/
├── scripts/
│ ├── n8n_scanner.py # Основной CLI
│ ├── modules/ # Основные модули
│ │ ├── scanner.py # Логика сканирования
│ │ ├── detector.py # Обнаружение уязвимостей
│ │ ├── reporter.py # Генерация отчётов
│ │ ├── config.py # Конфигурация
│ │ └── utils.py # Утилиты
│ ├── tests/ # Набор тестов
│ └── build.py # Автоматизация сборки
├── docs/ # Документация
└── docker/ # Конфигурации Docker
# Быстрый тест функциональности (рекомендуется)
cd scripts
python quick_test.py
# Полный набор тестов
python build.py test
# Тест конкретного модуля
python -m pytest tests/test_config.py -v
Результаты быстрого теста:
[Test] Обнаружение уязвимости версии [OK]
[Test] Загрузка конфигурации [OK]
[Test] Создание сканера [OK]
[Test] Создание детектора [OK]
[Test] Создание отчётчика [OK]
[Test] Утилитарные функции [OK]
Результаты: 6 пройдено, 0 ошибок
# Установка зависимостей
python build.py install
# Запуск всех тестов
python build.py test
# Запуск линтеров
python build.py lint
# Форматирование кода
python build.py format
# Сборка дистрибутива
python build.py build
# Очистка артефактов
python build.py clean
# Полный конвейер сборки
python build.py all
Сканер требует явной авторизации:
⚠️ ТРЕБУЕТСЯ АВТОРИЗАЦИЯ
Вы собираетесь сканировать: https://n8n.example.com:5678
У вас есть разрешение на тестирование этой цели? [y/N]:
Обязательно:
Запрещено:
Если вы обнаружили уязвимые экземпляры:
CVE-2026-21858 обнаружена:
Этот сканер разработан как этичный инструмент безопасности, помогающий организациям выявлять и устранять уязвимость Ni8mare. Он выполняет только обнаружение и никогда не эксплуатирует уязвимости.
Лицензия MIT — подробности см. в файле LICENSE.
Сторонние компоненты:
enhancementВ: Будет ли это эксплуатировать уязвимость?
О: Нет. Только обнаружение, никогда не эксплуатирует.
В: Могу ли я сканировать без авторизации?
О: Нет. Всегда сначала получайте письменное разрешение.
В: Какие версии уязвимы?
О: Все версии n8n ниже 1.121.0 уязвимы.
В: Насколько точным является обнаружение?
О: Очень высокая точность с низким уровнем ложных срабатываний.
В: Могу ли я использовать это в конвейерах CI/CD?
О: Да. Используйте --no-confirm и --json-logs для автоматизации.
В: Работает ли это на Windows?
О: Да. Все проблемы совместимости с Unicode решены.
cd ni8mare-scanner/scripts
pip install -r requirements.txt
# Проверка версии
python n8n_scanner.py version-check 1.120.0
# Сканирование экземпляра
python n8n_scanner.py scan https://n8n.example.com:5678
# Пакетное сканирование
python n8n_scanner.py batch targets.txt
# Генерация конфигурации
python n8n_scanner.py generate-config --format yaml > config.yml
# Показать справку
python n8n_scanner.py --help
python n8n_scanner.py scan --help
0 = Безопасно/Успешно1 = Ошибка2 = УязвимоСделано с ❤️ для сообщества специалистов по безопасности
Этот инструмент предоставляется как есть только для этичного тестирования безопасности. Авторы не несут ответственности за неправильное использование или ущерб, причинённый этим инструментом.