開発者は新たな脆弱性から常に脅威にさらされており、React2Shellエクスプロイトは近年の記憶に残る最も深刻なものの一つとして際立っています。CVE-2025-55182として追跡されているこの重大な欠陥は、React Server Components (RSC)を使用するアプリケーションにおいて、認証なしのリモートコード実行 (RCE) を可能にします。さらに、Next.jsのような人気のあるフレームワークにも影響を及ぼし、数え切れないほどの本番環境のデプロイメントを危険にさらしています。
次に、管理者はアップグレードを優先する必要があります。責任ある開示の後、パッチは迅速に提供されましたが、脅威アクターによる積極的な悪用が緊急性を強調しています。その結果、チームはデータ盗難やリバースシェルなどの侵害を避けるために、遅滞なく修正を実装します。
React2Shell脆弱性の理解
研究者たちは、攻撃者が細工されたリクエストを介してシェルライクなアクセスを得ることから、この問題を「React2Shell」と呼んでいます。具体的には、この脆弱性はRSC Flightプロトコルにおける安全でないデシリアライゼーションに起因します。攻撃者はHTTPリクエストで悪意のあるペイロードを送信し、サーバーは十分な検証なしにそれらを処理します。その結果、プロトタイプ汚染技術によって機密性の高いコンストラクタへのアクセスが可能となり、任意のコード実行につながります。
さらに、デフォルト設定では悪用に認証は必要ありません。明示的なサーバーアクションがないアプリケーションでも、RSCを使用していれば脆弱なままです。脅威インテリジェンスレポートは、2025年12月3日の公開から数時間以内にスキャンと攻撃が成功したことを確認しています。国家関連グループを含むアクターは、マイナー、バックドア、リバースプロキシをデプロイしています。
影響を受けるバージョンと環境
この欠陥は特定のパッケージバージョンに影響します。
- React Server Componentsパッケージ (react-server-dom-webpack、react-server-dom-parcel、react-server-dom-turbopack) のバージョン19.0.0から19.2.0 (一部)
- Next.js 15.0.0から16.0.6、および一部のcanaryリリース
- 脆弱な設定を使用しているVercelデプロイメント (公開されているv0アプリを含む)
Vercel上のアプリケーションは、既知のパターンをブロックする自動WAFルールの恩恵を受けています。しかし、これらは多層防御の一部に過ぎず、アップグレードが完全な解決策を提供します。
症状には、特定のヘッダー (例: Next-Action) を持つ異常なPOSTリクエスト、予期しないプロセスの生成、または環境変数へのアクセス試行などが含まれます。ただし、ログやランタイム監視なしでは信頼性の高い検出は困難です。
React2Shellを修正するためのステップバイステップガイド
管理者は、修正のために体系的なプロセスに従います。まず、脆弱性の状態を評価します。
ステップ1: 現在のバージョンを確認する
`package.json`を開き、依存関係を検査します。
{
"dependencies": {
"next": "15.3.4",
"react-server-dom-webpack": "19.1.0"
}
}
または、自動チェックのためにこのコマンドを実行します。
npx fix-react2shell-next
このツールはモノレポをスキャンし、脆弱なパッケージを特定し、正確なアップグレードを提案します。
Vercelでは、ダッシュボードに影響を受ける本番環境のデプロイメントに関するバナーが表示されます。
ステップ2: パッチが適用されたバージョンにアップグレードする
VercelとReactチームは、対象を絞ったパッチをリリースしました。Next.jsを以下の安定バージョンのいずれかに更新してください。
- 15.0.5、15.1.9、15.2.6、15.3.6、15.4.8、15.5.7、または16.0.10
Canary版については、15.6.0-canary.58以降を使用してください。
最も簡単な方法は、公式のフィクサーを使用することです。
npx fix-react2shell-next
このインタラクティブなユーティリティは、決定的なバージョンアップを適用し、ロックファイルを更新し、pnpm、yarn、npm、またはbunをサポートします。
手動で更新する場合:
- `package.json`を編集して、パッチが適用されたバージョンを指定します (例: `"next": "15.5.7"`)。
- パッケージマネージャーのインストールコマンドを実行します。
- ロックファイルを含め、変更をコミットします。
- 直ちに再デプロイします (例: `vercel --prod` または git push)。
RSCを使用する他のフレームワークは、Reactの勧告に従って直接パッケージをアップグレードします。
ステップ3: 修正を検証する
アップグレード後、脆弱性スキャナーを再実行するか、ステージング環境で安全なPoCを使用してテストします。悪用が発生しないことを確認してください。リクエストは安全に拒否されるか、エラーになるはずです。
さらに、2025年12月4日より前にアプリが脆弱なコードを公開で実行していた場合は、シークレットをローテーションしてください。攻撃者が環境変数を持ち出した可能性があります。
ステップ4: 追加の保護を有効にする
Vercelの場合:
- プレビューおよびカスタムデプロイメントに標準保護をアクティブ化します。
- 共有可能なリンクとパスワードの例外を監査します。
- 脆弱なリポジトリに対する自動PRのためにVercel Agentを使用します。
Cloudflare、AWS、Fastlyなどのクラウドプロバイダーは、自動的にブロックルールをデプロイしました。
Apidogによる高度なテスト
アップグレード後の検証では、多くの場合、エンドポイントに複雑なリクエストを送信する必要があります。Apidogは、オールインワンAPIプラットフォームとしてここでその真価を発揮します。APIの設計、デバッグ、モック、テストを効率的に行えます。

React2Shellのシナリオでは、Apidogを使用して、制御された環境でエクスプロイトパターンを模倣したPOSTリクエスト (例: カスタムヘッダーやシリアライズされたペイロードを使用) を作成します。応答を検証し、ステータスコードをアサートし、回帰テストを自動化します。
Apidogの無料版は無制限の基本使用を提供し、有料プランはチーム向けに月額9ドル/ユーザーから利用可能です。これは、CI/CD統合やモックサーバーのような機能を備えながら、代替製品と比較して非常に手頃です。プロプランは企業のニーズに合わせて拡張できます。今すぐ無料版をダウンロードして、セキュリティワークフローに統合しましょう。
将来のエクスプロイトを防ぐためのベストプラクティス
アップグレードはReact2Shellを修正しますが、堅牢な習慣は全体的なリスクを低減します。
まず、CI/CDパイプラインで依存関係スキャンを有効にします。ツールは脆弱なパッケージを早期に警告します。
次に、公開されるエンドポイントを最小限に抑えます。React2Shellはデフォルトを攻撃しますが、最小権限の設計は影響を限定します。
さらに、異常がないかログを監視します。Next-Actionヘッダーまたはプロトタイプ汚染インジケーター (**proto**、constructor) でフィルタリングします。
さらに、可能であればランタイムアプリケーション自己保護 (RASP) を実装します。
最後に、公式チャンネル (Reactブログ、Next.jsアドバイザリ、Vercel KB) を通じて情報を入手し続けます。
結論
React2Shellエクスプロイトは、フレームワークレベルの欠陥が本番アプリに急速に波及する様子を浮き彫りにしました。しかし、Meta、Vercel、およびコミュニティからの協調的な対応により、迅速なパッチが提供されました。`fix-react2shell-next`のようなツールを使用して迅速にアップグレードすることで、RCEのリスクを完全に排除できます。
脅威アクターは探査を続けているため、遅延は侵害を招きます。今すぐ行動しましょう: バージョンを確認し、修正を適用し、検証し、防御を多層化しましょう。
ApidogのようなツールをAPIテストルーチンに統合することで、検証プロセスがさらに強化されます。無料ダウンロードにより、即座に徹底的なエンドポイント検証が可能になります。
安全なアプリケーションには警戒が必要ですが、ここに示す簡単な手順でReact2Shellを効果的に解決できます。その結果、デプロイメントはより強固になるでしょう。
