
Инструмент обнаружения CVE-2025-55182 & CVE-2025-66478 для Next.js RSC RCE
Высокоточный сканер уязвимостей командной строки для обнаружения CVE-2025-55182 и CVE-2025-66478 (удалённое выполнение кода) в приложениях Next.js, использующих React Server Components (RSC).
Эти критические уязвимости затрагивают приложения Next.js, использующие React Server Components, и позволяют неавторизованному удалённому выполнению кода с помощью специально сформированных multipart POST-запросов.
Затронутые версии:
За техническими подробностями см.: Assetnote Research
Сканер отправляет специально сформированный multipart POST-запрос, содержащий PoC-пейлоад для RCE, который выполняет детерминированную математическую операцию (41*271 = 11111). Уязвимые хосты возвращают результат в заголовке ответа X-Action-Redirect в виде /login?a=11111.
| Режим | Описание | Назначение |
|---|---|---|
| RCE PoC (по умолчанию) | Выполняет безвредную математическую операцию на целевой системе | Быстрое подтверждение уязвимости |
| Safe Check | Побочный канал обнаружения через ответы об ошибках | Когда выполнение кода нежелательно |
# Clone the repository
git clone https://github.com/YOUR_USERNAME/react2shell-scanner.git
cd react2shell-scanner
# Install dependencies
pip install -r requirements.txt
# Scan a single target
python scanner.py -u https://example.com
# Scan multiple targets from file
python scanner.py -l hosts.txt
# Multi-threaded scan with JSON output
python scanner.py -l hosts.txt -t 20 -o results.json
# Scan with custom headers
python scanner.py -u https://example.com -H "Authorization: Bearer token" -H "Cookie: session=abc"
# Safe detection mode (no code execution)
python scanner.py -u https://example.com --safe-check
# Scan Windows targets
python scanner.py -u https://example.com --windows
# WAF bypass mode
python scanner.py -u https://example.com --waf-bypass
# Vercel-specific WAF bypass
python scanner.py -u https://example.com --vercel-waf-bypass
# Combine options
python scanner.py -l hosts.txt -t 50 --waf-bypass --windows -o results.json
╔═══════════════════════════════════════════════════════════════╗
║ react2shell-scanner ║
║ CVE-2025-55182 & CVE-2025-66478 Detection Tool ║
╚═══════════════════════════════════════════════════════════════╝
┌─────────────────────────────────────────────────────────────┐
│ SCAN CONFIGURATION │
├─────────────────────────────────────────────────────────────┤
│ Targets: 5 │
│ Threads: 10 │
│ Detection Mode: RCE PoC │
│ Payload Type: Unix (Shell) │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ TARGET: https://example.com │
├─────────────────────────────────────────────────────────────┤
│ Status: 🟢 SAFE │
│ HTTP Status: 200 │
│ Response Time: 245.32ms │
│ Server: Vercel │
└─────────────────────────────────────────────────────────────┘
═════════════════════════════════════════════════════════════════
SCAN SUMMARY
═════════════════════════════════════════════════════════════════
Total Targets: 5
Vulnerable: 0
Safe: 5
Total Scan Time: 2.34s
═════════════════════════════════════════════════════════════════
При использовании -o results.json результаты сохраняются в формате JSON:
[
{
"url": "https://vulnerable-site.com",
"vulnerable": true,
"message": "RCE confirmed: X-Action-Redirect = /login?a=11111",
"status_code": 200,
"response_time": 342.15,
"server": "Next.js",
"payload_type": "rce-poc (Unix)",
"x_action_redirect": "/login?a=11111"
}
]
Этот инструмент предназначен только для авторизованного тестирования безопасности. Используйте сканер только против систем, на тестирование которых у вас есть явное разрешение. Несанкционированный доступ к компьютерным системам противозаконен.
Авторы не несут ответственности за любое неправомерное использование или ущерб, причинённый этим инструментом.
Лицензия MIT — подробности см. в файле LICENSE.
Вклад приветствуется! Не стесняйтесь отправлять Pull Request.
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)| Option | Description |
|---|
-u, --url | Один URL для проверки |
-l, --list | Файл со списком хостов (по одному на строку) |
-t, --threads | Количество одновременных потоков (по умолчанию: 10) |
--timeout | Тайм-аут запроса в секундах (по умолчанию: 10) |
-o, --output | Файл для сохранения результатов (формат JSON) |
--all-results | Сохранять все результаты, а не только уязвимые хосты |
-v, --verbose | Включать тело ответа в вывод |
-q, --quiet | Выводить только уязвимые хосты |
--no-color | Отключить цветной вывод в терминале |
-k, --insecure | Отключить проверку SSL-сертификатов |
-H, --header | Пользовательский заголовок (можно использовать несколько раз) |
--safe-check | Использовать безопасное обнаружение по побочному каналу вместо RCE PoC |
--windows | Использовать пейлоад Windows PowerShell вместо Unix-шелла |
--waf-bypass | Добавлять «мусорные» данные для обхода проверки содержимого WAF |
--waf-bypass-size | Размер «мусорных» данных в КБ (по умолчанию: 128) |
--vercel-waf-bypass | Использовать вариант пейлоада для обхода WAF Vercel |