はじめに:Next.jsアプリに潜む深刻な脅威「React2Shell」
Next.js開発者にとって、重大な「React2Shell」脆弱性に対抗する新たな武器が登場しました。この脆弱性は深刻なリモートコード実行(RCE)の欠陥であり、CVE-2025-66478として追跡されています。Next.jsおよびReact Server Components (RSC) を利用するアプリケーションを標的とし、悪用されると遠隔からのコード実行を許してしまう可能性があります。Vercel Labsは、この脅威からアプリケーションを保護するため、専用のコマンドラインツール「fix-react2shell-next」をリリースしました。
「fix-react2shell-next」ツールの概要と自動検出・パッチ適用機能
「fix-react2shell-next」は、脆弱性のあるNext.jsおよびReact Server Componentsのバージョンを自動的に検出・修正するように設計されています。複雑なプロジェクト構造、特にモノレポにも対応し、プロジェクトディレクトリ内のすべてのpackage.jsonファイルを再帰的にスキャンします。既知の脆弱なバージョンに合致する依存関係を特定し、公式のセキュリティアドバイザリが推奨する安全なパッチレベルに確実にアップグレードします。このツールは、使用中のパッケージマネージャー(npm、yarn、pnpm、bun)を検出し、package.jsonファイルを自動的に更新し、プロジェクトのロックファイルをリフレッシュすることで、手動でのエラー発生リスクを大幅に削減します。
影響を受けるバージョンと推奨されるパッチ
この脆弱性は、Next.jsおよびReact Server Componentsの複数のブランチに影響を与えます。ツールは以下のバージョンをチェックし、対応するパッチを適用します。
- Next.jsの場合:
- 15.0.0 – 15.0.4 → 15.0.5へ更新
- 15.1.0 – 15.1.8 → 15.1.9へ更新
- 15.2.0 – 15.2.5 → 15.2.6へ更新
- 15.3.0 – 15.3.5 → 15.3.6へ更新
- 15.4.0 – 15.4.7 → 15.4.8へ更新
- 16.0.0 – 16.0.6 → 16.0.7へ更新
- カナリアビルドの場合: 15.6.0-canary.58および16.1.0-canary.12が安全なターゲットです。
- Next.js 14.xの古いバージョンを使用している場合は、14.3.0-canary.76へダウングレードするか、安定版の15.0.5へアップグレードすることを推奨します。
react-server-dom-webpack,react-server-dom-parcel,react-server-dom-turbopackの場合:- 19.0.0 → 19.0.1へ更新
- 19.1.0, 19.1.1 → 19.1.2へ更新
スキャナーの使用方法
開発者は、npxコマンドを使用することで、グローバルにインストールすることなくツールをすぐに実行できます。
- 対話モード:プロジェクトをチェックし、修正を適用するかどうかを選択します。
npx fix-react2shell-next
- 自動修正モード:CI/CDパイプラインや非対話型環境向けに、自動で修正を適用します。
npx fix-react2shell-next --fix
- ドライランモード:ファイルに変更を加えることなく、何が変更されるかレポートを確認します。
npx fix-react2shell-next --dry-run
緊急の対応を推奨
現在、この脆弱性を悪用しようとする試みが活発に確認されているため、Next.jsまたはReact Server Componentsの脆弱なバージョンを実行している組織は、アプリケーションがリモート攻撃にさらされないよう、直ちにこのスキャナーを実行することが強く推奨されます。
元記事: https://gbhackers.com/next-js-releases-scanner-react2shell-vulnerability/
