⚠️ 教育目的専用
このリポジトリは、教育および研究専用に作成されています。React Server Components(Next.js)の重大な脆弱性を実証し、開発者が依存関係を更新することのリスクと重要性を理解するのに役立ちます。
このコードを本番環境や、あなたが所有していないシステムに対して使用しないでください。
このプロジェクトは、Next.js アプリケーションの React Server Components に影響を与えるリモートコード実行(RCE)脆弱性である CVE-2025-55182(別名 "React2Shell")を再現します。
multipart/form-data リクエストを送信し、React Server Components のデシリアライズロジックを悪用して、サーバー上で任意の JavaScript コードを実行させます。
app/page.js: インタラクティブなエクスプロイトダッシュボードを含みます。この Client Component を使用すると、ブラウザから直接 RCE コマンドを実行できます。app/actions.js: 標準の Server Action を含みます。脆弱性は、このアクションが実行される前のフレームワークのパースロジックにあります。exploit.js: エクスプロイトをプログラム的に実証するためのスタンドアロン Node.js スクリプトです。リポジトリをクローンします:
git clone https://github.com/pkrasulia/CVE-2025-55182-NextJS-RCE-PoC.git
cd react-cve-test
(オプション)正しい Node.js バージョンを使用します:
nvm use
依存関係をインストールします(これにより脆弱なバージョンがインストールされます):
npm ci --legacy-peer-deps
# OR
npm install --force
開発サーバーを起動します:
npm run dev
サーバーは http://localhost:3000 で起動します。
http://localhost:3000 を開きます。whoami、ls -la、または cat package.json)を入力します。エクスプロイトスクリプトはターミナルから直接実行できます:
# Basic usage
node exploit.js http://localhost:3000 "whoami"
# Open Calculator (Linux) - use '&' to run in background
node exploit.js http://localhost:3000 "gnome-calculator &"
この脆弱性を自分のプロジェクトで修正するには:
Next.js を更新する: Next.js を 15.0.3 以降にアップグレードしてください。
npm install next@latest react@latest react-dom@latest
依存関係を監査する: 他のパッケージが React/Next.js の古いバージョンを強制していないことを確認してください。
作者は、この情報の悪用について一切責任を負いません。このプロジェクトは、セキュリティ研究者や開発者がアプリケーションのセキュリティを向上させるのに役立つことを目的としています。