
CVE-2025-55182 (React2Shell) Scanner
Набор инструментов для оценки безопасности, разработанный Rapticore Security Research Team для обнаружения уязвимостей React Server Components (RSC), включая CVE-2025-55182 (React2Shell) — критическую уязвимость удаленного выполнения кода.
Этот набор предоставляет два специализированных инструмента:
| Инструмент | Описание |
|---|---|
ore_rsc.py | Быстрый сканер конечных точек RSC для быстрой оценки |
ore_react2shell.py | Полный пакет оценки с перебором поддоменов и формированием отчетов |
https://github.com/user-attachments/assets/5be7661b-515c-46b4-ade4-8e88fdff6528
Сканер обнаруживает уязвимости CVE-2025-55182 (React2Shell) в тестовом приложении Next.js.
CVE-2025-55182 (React2Shell) — критическая уязвимость RCE, затрагивающая React Server Components:
| Затронутые пакеты | Уязвимые версии | Исправленные версии |
|---|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Ссылка: GHSA-fv66-9v8q-g76r
ore_rsc.py)ore_react2shell.py)# Clone the repository
git clone https://github.com/rapticore/ore_react2shell_scanner.git
cd ore_react2shell_scanner
# Create virtual environment
python3 -m venv env
source env/bin/activate # On Windows: env\Scripts\activate
# Install dependencies
pip install aiohttp jinja2
# Optional: Install subfinder for subdomain enumeration
go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
ore_rsc.py# Single domain scan
python ore_rsc.py example.com
# Multiple domains
python ore_rsc.py example.com api.example.com
# Scan from file
python ore_rsc.py -f subdomains.txt
# Deep scan with extended paths
python ore_rsc.py example.com --deep
# Active verification (sends PoC payload)
python ore_rsc.py example.com --verify
# Safe side-channel check (non-exploitative)
python ore_rsc.py example.com --safe-check
# JSON output
python ore_rsc.py example.com --format json -o results.json
ore_react2shell.py# Full assessment with subdomain enumeration
# Results saved to: results/example_com_{timestamp}/
python ore_react2shell.py --domain example.com
# Use existing subdomain list
python ore_react2shell.py --domain example.com -f subdomains.txt
# Multiple root domains
python ore_react2shell.py --domain example.com --domain example.org
# With active verification
python ore_react2shell.py --domain example.com --verify
# Safe side-channel check
python ore_react2shell.py --domain example.com --safe-check
# Skip subdomain enumeration
python ore_react2shell.py --domain example.com --skip-enum
# Custom output directory
python ore_react2shell.py --domain example.com -o ./reports
Отчеты автоматически организуются по домену и временной метке:
results/
└── example_com_20250106_143052/
├── rsc_assessment.html # Interactive HTML report
├── rsc_assessment.json # Machine-readable JSON
├── rsc_assessment.csv # Spreadsheet format
└── rsc_assessment_executive_summary.txt # Text summary
Сканер реализует надежную логику проверки для работы с нестабильными серверами:
Сканеры обнаруживают конечные точки RSC через:
text/x-component, text/x-rsc, text/x-flightx-nextjs-cache, rsc, next-action и др.0:, 1:), ссылки React ($)$ACTION_ID, атрибуты formAction| Уровень риска | Критерии |
|---|---|
| CRITICAL | Эксплуатация подтверждена с помощью --verify |
| HIGH | Вероятно уязвим с помощью --safe-check |
Если обнаружены уязвимые конечные точки:
react-server-dom-* до исправленных версий (19.0.1, 19.1.2, 19.2.1+)Этот инструмент предназначен только для авторизованных оценок безопасности. Используйте его только на доменах, которые вам принадлежат или на которые у вас есть явное письменное разрешение на тестирование.
Команда Rapticore Security Research не несет ответственности за неправильное использование.
Разработано командой Rapticore Security Research
| 19.0.1, 19.1.2, 19.2.1+ |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
| Опция | Описание |
|---|
domains | Домен(ы) для сканирования |
-f, --file | Файл со списком доменов (по одному на строку) |
-c, --concurrency | Количество одновременных запросов (по умолчанию: 20) |
-t, --timeout | Тайм-аут запроса в секундах (по умолчанию: 25) |
--deep | Глубокое сканирование с расширенными путями |
--verify | Активная проверка — отправка PoC-полезной нагрузки RCE |
--safe-check | Безопасная проверка по побочному каналу |
--waf-bypass | Режим обхода WAF с мусорными данными |
-o, --output | Путь к выходному файлу |
--format | Формат вывода: console, json, csv |
| Опция | Описание |
|---|
-d, --domain | Целевой домен(ы) для оценки (обязательно) |
-f, --file | Файл со списком поддоменов |
--skip-enum | Пропустить перебор поддоменов |
-c, --concurrency | Количество одновременных запросов (по умолчанию: 30) |
--deep | Глубокое сканирование с расширенными путями |
--verify | Режим активной проверки |
--safe-check | Безопасная проверка по побочному каналу |
-o, --output | Базовая выходная директория (по умолчанию: results) |
--format | Формат вывода: html, json, csv, txt, all |
| MEDIUM | Конечная точка RSC с серверными действиями |
| LOW | Обнаружена конечная точка RSC |
| INFO | Присутствуют индикаторы RSC |