CVE-2025-55183(ソースコード露呈)および CVE-2025-55184(サービス拒否)の脆弱性を React Server Components 上でテストするための包括的なセキュリティテスト環境です。
教育およびセキュリティ研究目的のみに使用してください
このリポジトリには、意図的に脆弱なアプリケーションと悪用ツールが含まれています。自分が所有しているシステム、または明示的な書面による許可を得たシステムでのみテストしてください。 許可のないテストは違法かつ非倫理的です。
両脆弱性は、2025年12月11日に公開された React Server Components バージョン 19.0.0 から 19.2.2 に影響します。
| プロパティ | 値 |
|---|---|
| 深刻度 | 中 (CVSS 5.3) |
| タイプ | 情報漏洩 |
| 影響 | サーバーソースコードの露呈 |
| 認証 | 不要 |
攻撃者は、サーバー関数オブジェクトに対して .toString() を呼び出すことで、サーバーのみのソースコードを漏洩させるよう Server Action の引数を強制できます。これにより以下の情報が露呈します:
| プロパティ | 値 |
|---|---|
| 深刻度 | 高 (CVSS 7.5) |
| タイプ | サービス拒否 |
| 影響 | 完全なサービス停止 |
| 認証 | 不要 |
特別に細工されたペイロードが無限の Promise 再帰を発生させ、Node.js サーバーを無期限にハングさせます。結果として以下が発生します:
| 側面 | CVE-2025-55183 | CVE-2025-55184 |
|---|---|---|
| 深刻度 | 中 | 高 |
| タイプ | 情報漏洩 | サービス拒否 |
| 影響 | ソースコード漏洩 | サーバークラッシュ |
| 検出 | レスポンスにコードが含まれる | サーバーのタイムアウト/ハング |
| 復旧 | 即時 | 再起動が必要 |
要約: アプリは脆弱です(React 19.0.0)が、最新の保護機能により、このデモ環境では実際のクラッシュが防止される可能性があります。
CVE-2025-55184 は、本番環境で React 19.0.0~19.2.2 に影響する 現実の重大な脆弱性 です。ただし、ローカルデモで DoS クラッシュを実演することは、以下の理由から困難な場合があります。
エクスプロイトがデモをクラッシュさせなくても、以下の方法で脆弱性を確認できます。
cd vulnerable-app
npm list react react-dom
# 出力例:
[email protected] ← 脆弱なバージョン
[email protected] ← 脆弱なバージョン
19.0.0 から 19.2.2 が表示された場合、アプリケーションは脆弱です。
cd scanner
python scan.py http://localhost:3000
スキャナーは以下をチェックします:
git clone https://github.com/StealthMoud/react-server-cve-lab.git
cd react-server-cve-lab
# アプリを起動(両方のCVEに対して脆弱)
docker-compose up --build -d
# アプリは http://localhost:3000 で利用可能
cd scanner
# 依存関係のインストール
pip install -r requirements.txt
# 両方の脆弱性をスキャン
python scan.py http://localhost:3000
# CVE-2025-55183 のみスキャン
python scan.py --cve 55183 http://localhost:3000
# CVE-2025-55184 のみスキャン
python scan.py --cve 55184 http://localhost:3000
# 複数のターゲットをスキャン
python scan.py --file targets.txt
react-server-cve-lab/
├── README.md # このファイル
├── DOCUMENTATION.md # 完全な技術ドキュメント
├── LICENSE
├── .gitignore
├── docker-compose.yml
│
├── vulnerable-app/ # 両方のCVEに対して脆弱
│ ├── Dockerfile
│ ├── package.json
│ ├── next.config.js
│ └── app/
│ ├── layout.js
│ ├── page.js
│ └── actions.js # 脆弱なサーバーアクション
│
├── scanner/
│ ├── requirements.txt
│ ├── scan.py # 両方のCVE用スキャナー
│ └── README.md
│
└── exploits/
├── exploit-55183.py # CVE-2025-55183 のPoC
├── exploit-55184.py # CVE-2025-55184 のPoC
└── README.md
このアプリケーションは、Server Actions を備えた React 19.0.0 を実行する Next.js アプリで、両方のCVE に対して脆弱です。
# Docker Compose を使用(推奨)
docker-compose up --build -d
# 実行確認
curl http://localhost:3000
# ログの表示
docker-compose logs -f
# アプリの停止
docker-compose down
cd vulnerable-app
npm install
npm run build
npm start
統合スキャナーは CVE-2025-55183 と CVE-2025-55184 の両方を検出します。
cd scanner
# 両方のCVEをスキャン
python scan.py http://localhost:3000
# 特定のCVEのみスキャン
python scan.py --cve 55183 http://localhost:3000
python scan.py --cve 55184 http://localhost:3000
# 詳細出力
python scan.py --verbose http://localhost:3000
# カスタムタイムアウト
python scan.py --timeout 10 http://example.com
# ファイルから複数のURLをスキャン
python scan.py --file targets.txt
# 結果をJSONに保存
python scan.py --output results.json http://localhost:3000
# SSL検証を無効化
python scan.py --no-verify https://self-signed.example.com
# すべてのCVEを詳細出力付きでスキャンし結果を保存
python scan.py --verbose --output scan-results.json http://localhost:3000
╔═══════════════════════════════════════════════════════════╗
║ React Server Components 脆弱性スキャナー ║
║ CVE-2025-55183 & CVE-2025-55184 ║
╚═══════════════════════════════════════════════════════════╝
[*] http://localhost:3000 をテスト中
[CVE-2025-55183] ソースコード露呈
[!] 脆弱: ソースコードが漏洩しました
露呈した関数: 3
コード長: 1247 文字
シークレットを含む: ✓(APIキーが見つかりました)
[CVE-2025-55184] サービス拒否
[!] 脆弱: DoS攻撃成功
ステータスコード: 404
Content-Type: text/plain
マーカー発見: ✓
============================================================
サマリー
============================================================
テスト済み: 1
CVE-2025-55183 脆弱: 1
CVE-2025-55184 脆弱: 1
両CVE脆弱: 1
脆弱でない: 0
両脆弱性の包括的な技術分析については、以下を参照してください。
DOCUMENTATION.md - 完全な技術ドキュメント。以下を含みます:
両脆弱性は同じパッチバージョンで修正されています。
React をパッチ適用済みバージョンに更新:
npm install [email protected] [email protected]
# または
npm install react@latest react-dom@latest
Next.js を更新(該当する場合):
npm install next@latest
修正を確認:
npm list react react-dom next
python scanner/scan.py http://localhost:3000
| パッケージ | 脆弱なバージョン | 修正済みバージョン |
|---|---|---|
| React | 19.0.0 - 19.2.2 | 19.0.3+, 19.1.4+, 19.2.3+ |
| Next.js 15.1.x | < 15.1.4 | 15.1.4+ |
| Next.js 15.0.x | < 15.0.4 | 15.0.4+ |
| Next.js 14.x | < 14.2.24 | 14.2.24+ |
# スキャナーを実行して修正を確認
cd scanner
python scan.py http://your-patched-app.com
# 期待される出力:
# [+] CVE-2025-55183: 脆弱ではない
# [+] CVE-2025-55184: 脆弱ではない
コントリビューションを歓迎します!改善の余地がある分野:
お気軽にプルリクエストを送信してください。
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細は LICENSE ファイルを参照してください。
このリポジトリがあなたのセキュリティ研究に役立つ場合は、スターを付けることをご検討ください!