
CVE-2026-42945 - NGINX Rift Toolkit
Комплексный набор инструментов для сканирования, исправления и тестирования CVE-2026-42945 — критической уязвимости удалённого выполнения кода (RCE) в nginx
Этот набор предоставляет комплексные инструменты для сканирования, исправления и тестирования CVE-2026-42945 — критической уязвимости удалённого выполнения кода в nginx, которая затрагивает версии до 1.26.3 (mainline) и 1.24.1 (stable).
Уязвимость эксплуатирует некорректный разбор заголовков HTTP/2 при отключённом ASLR с использованием техники heap spray.
Сканирует подсеть или отдельный хост для выявления уязвимых установок nginx.
Возможности:
Автоматически обновляет уязвимые экземпляры nginx до последней безопасной версии.
Возможности:
Проверяет уязвимость CVE-2026-42945 с помощью техники heap spray.
Возможности:
paramiko (>= 3.0.0) - SSH client library
rich (>= 13.0.0) - Terminal formatting and progress bars
git clone https://github.com/gagaltotal/CVE-2026-42945-NGINX-Rift-Toolkit
cd CVE-2026-42945-NGINX-Rift-Toolkit
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

nginx_scanner.py)python3 nginx_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 192.168.1.10 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/30 --user admin --password "password"
python3 nginx_scanner.py --subnet 192.168.1.0/24 --port 2222 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --output report.html
--subnet SUBNET Target subnet in CIDR format (required)
--user USER SSH username (default: root)
--password PASSWORD SSH password
--key KEY_PATH Path to SSH private key
--port PORT SSH port (default: 22)
--timeout TIMEOUT Connection timeout in seconds (default: 5)
--output FILE Output report file (HTML/JSON)
--workers WORKERS Number of concurrent threads (default: 20)
nginx_patcher.py)
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --dry-run
python3 nginx_patcher.py --subnet 192.168.1.0/24 --target-version 1.26.3 --user root --key ~/.ssh/id_rsa
python3 nginx_patcher.py --subnet 10.0.0.0/30 --port 2222 --user admin --password "password"
--subnet SUBNET Target subnet in CIDR format (required)
--user USER SSH username (default: root)
--password PASSWORD SSH password
--key KEY_PATH Path to SSH private key
--port PORT SSH port (default: 22)
--timeout TIMEOUT Connection timeout in seconds (default: 30)
--target-version VERSION Nginx version to patch to (default: latest)
--dry-run Show what would be patched without executing
--workers WORKERS Number of concurrent threads (default: 10)
exploit.py)
python3 exploit.py --target 192.168.1.100 --port 80
python3 exploit.py --target 192.168.1.100 --port 80 --command "cat /etc/passwd"
python3 exploit.py --target 192.168.1.100 --port 80 --spray 50
python3 exploit.py --target 192.168.1.100 --port 80 --verbose
--target HOST Target host IP or domain (required)
--port PORT Target port (default: 80)
--command CMD Command to execute
--spray NUM Number of heap spray attempts (default: 20)
--timeout TIMEOUT Connection timeout in seconds (default: 5)
--tries NUM Number of exploitation attempts (default: 10)
--verbose Enable verbose output
# Step 1: Scan network for vulnerable instances
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key --output scan_results.html
# Step 2: Review scan results in scan_results.html
# Step 3: Patch vulnerable instances
python3 nginx_patcher.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key
# Step 4: Verify patches applied by running scanner again
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user admin --key ~/.ssh/key
# Step 1: Dry-run to see what would be patched
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa --dry-run
# Step 2: Apply patches
python3 nginx_patcher.py --subnet 192.168.1.0/24 --user root --key ~/.ssh/id_rsa
# Step 1: First verify the system is vulnerable
python3 exploit.py --target 10.0.0.50 --port 80 --verbose
# Step 2: If successful, immediate patching is recommended
python3 nginx_patcher.py --subnet 10.0.0.50 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user root --key ~/.ssh/id_rsa
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user root --password "password"
python3 nginx_scanner.py --subnet 10.0.0.0/24 --user root --key ~/.ssh/id_rsa --port 2222
chmod 600 ~/.ssh/id_rsa--dry-run, чтобы выявить проблемы без примененияСканер создаёт подробные отчёты в нескольких форматах:
| Формат | Описание |
|---|---|
| HTML-отчёт | Просматривается в браузере, содержит сводку по уязвимостям, затронутые хосты, детали версий |
| JSON-отчёт | Машиночитаемый формат с полными техническими деталями |
| Вывод в консоль | Прогресс в реальном времени с цветовой кодировкой результатов |
Все операции регистрируются с временными метками для соответствия требованиям аудита. Подробную информацию о выполнении смотрите в выводе консоли.
Вклад приветствуется! Чтобы внести вклад:
git checkout -b feature/improvement)git commit -am 'Add improvement')git push origin feature/improvement)Этот набор инструментов предоставляется только для авторизованного тестирования безопасности и оценки уязвимостей. Несанкционированный доступ к компьютерным системам незаконен. Пользователи обязаны убедиться в наличии соответствующих полномочий перед использованием этого набора.
gagaltotal - GitHub
Этот проект лицензирован по лицензии MIT — подробности см. в файле LICENSE.
Последнее обновление: 2026-05-20
| Свойство | Значение |
|---|
| Идентификатор уязвимости | CVE-2026-42945 |
| Тип | Удалённое выполнение кода (RCE) |
| Оценка CVSS | 9.8 (Критическая) |
| Затронутые версии | < 1.26.3 (mainline) / < 1.24.1 (stable) |
| Исправленная версия | 1.26.3+ |
| Вектор атаки | Некорректный разбор заголовков HTTP/2 |
| Предварительное условие | ASLR отключён на целевой системе |
| Аспект | Описание |
|---|
| Управление SSH-ключами | Храните SSH-ключи безопасно, никогда не коммитьте их в репозитории |
| Сетевой доступ | Обеспечьте правильную сегментацию сети для продакшн-использования |
| Тестовая среда | Всегда сначала тестируйте в непродакшн-среде |
| Журналирование | Все операции создают подробные журналы для аудита |
| Статус ASLR | Эксплойт требует отключённого ASLR на цели |
| Режим пробного запуска | Используйте флаг --dry-run для предпросмотра изменений перед применением |
| Резервное копирование | Всегда создавайте резервную копию конфигурации nginx перед исправлением |