
Обнаружение вектора эксплуатации React Server Actions – CVE-2025-55182 / CVE-2025-66478
Обнаружение CVE-2025-55182 / CVE-2025-66478 – React Server Components / Next.js
Этот репозиторий содержит скрипт Nmap Scripting Engine (NSE), написанный на Lua, предназначенный для безопасного обнаружения критической уязвимости, известной как React2Shell, затрагивающей реализации React Server Components (RSC) и React Server Actions (RSA), включая многие развёртывания Next.js.
Метод обнаружения использует неинтрузивную технику побочного канала, основанную на поведении сервера при обработке некорректных полезных нагрузок React Flight. Никакой эксплуатации, выполнения кода или небезопасных операций не производится.
React2Shell (CVE-2025-55182 / CVE-2025-66478) — это критический недостаток проектирования в конвейере React Server Components, который может позволить:
Несанкционированный доступ к внутренним ссылкам на компоненты
Произвольный доступ к свойствам
Потенциальное удалённое выполнение кода (RCE) в определённых фреймворках
Утечку данных на стороне сервера и манипуляцию потоком выполнения
Уязвимость срабатывает, когда React пытается разрешить специально созданные ссылки React Flight, такие как:
["$1:aa:aa"]
На уязвимых серверах это вызывает ошибку 500, содержащую характерный паттерн:
E{"digest":"..."}
Этот скрипт обнаруживает данный паттерн без попыток каких-либо вредоносных операций.
✔ Безопасное и пассивное обнаружение (без эксплуатации, без попыток RCE)
✔ Обнаружение высокодостоверной сигнатуры сбоя React Flight
✔ Работает по HTTP и HTTPS
✔ Настраиваемые пути и таймауты
✔ Автоматическое избегание ложных срабатываний от мер защиты Vercel/Netlify
✔ Вывод, совместимый с автоматизированными конвейерами и SIEM
✔ Лёгкий и подходящий для red teaming, bug bounty, реагирования на инциденты и CI/CD сканирования
git clone https://github.com/MoisesTapia/http-react2shell.git
cd http-react2shell
Поместите файл в каталог скриптов Nmap:
sudo cp http-react2shell.nse /usr/share/nmap/scripts/
Обновите индекс скриптов:
sudo nmap --script-updatedb
nmap -p80 --script http-react2shell <host>
nmap -p443 --script http-react2shell \
--script-args 'react2shell.path=/'
<host>
nmap -p443 --script http-react2shell \
--script-args 'react2shell.path=/api/action'
<host>
nmap -p443 --script http-react2shell \
--script-args 'react2shell.path=/,react2shell.timeout=20000'
<host>
nmap -iL targets.txt -p80,443 \
--script http-react2shell
nmap -sV -p80,443 \
--script "http-react2shell,http-headers,http-server-header,http-security-headers" \
<host>
PORT STATE SERVICE
443/tcp open https
| http-react2shell:
| Path: /login
| Scheme: auto (http/https decides by Nmap http library)
| No characteristic crash pattern observed.
| This suggests the tested endpoint is not vulnerable or is patched,
|_ but this is not a guarantee (other RSC/Server Actions paths may exist).
PORT STATE SERVICE
443/tcp open https
| http-react2shell:
| Path: /login
| Scheme: auto (http/https decides by Nmap http library)
| VULNERABLE: possible React2Shell (CVE-2025-55182 / CVE-2025-66478)
| Evidence: HTTP 500 + digest-like pattern found in response
|_ Notes: high-fidelity side-channel; verify manually and patch immediately.
PORT STATE SERVICE
443/tcp open https
| http-react2shell:
| Path: /login
| Scheme: auto (http/https decides by Nmap http library)
|_ ERROR: HTTP request failed (connection reset by peer)
https://github.com/lachlan2k/React2Shell-CVE-2025-55182-original-poc
https://github.com/sammwyy/R2SAE
Технические аналитические статьи и исследовательские работы по внутреннему устройству React Flight
Этот проект предоставляется исключительно для образовательных, исследовательских и защитных целей. Не сканируйте системы, которыми вы не владеете или на тестирование которых у вас нет явного разрешения. Сопровождающие не несут ответственности за неправомерное использование или любой причинённый ущерб.
Приветствуются pull request'ы, улучшения и дополнительные эвристики обнаружения. Вы можете внести вклад в:
Поддержку сканирования нескольких путей
Режимы обхода WAF
Дополнительную идентификацию
Интеграцию со встроенным фреймворком уязвимостей Nmap
Если этот инструмент помог вам в red teaming, bug bounty или защитной безопасности, пожалуйста, поставьте репозиторию звезду ⭐ на GitHub!