新たに公開された2つのCVE(React Server ComponentsにおけるCVE-2025-55182、およびNext.js middlewareにおけるCVE-2025-29927)は、モダンなJavaScriptスタックにおけるリモートコード実行と認証バイパスへの経路を切り開いています。単一のリクエストでこれらの脆弱性が引き起こされる可能性があり、設定のみでは防ぐことができません。React Server ComponentsまたはNext.js middlewareに依存しているチームは、これらのバグを緊急事態として扱い、直ちにパッチを適用する必要があります。

ログ内のノイズが誤解を招く理由

ある本番環境のNext.jsサイトから、1ヶ月分のエッジログを抽出しました。そのデータには、悪意があると判定された8,900件のリクエストが含まれていました。しかし、そのほとんどが最初のホップで失敗していました。最も頻繁に見られたURLは /wp-admin/install.php で、518回ヒットしていましたが、そのサイトはWordPressを稼働させておらず、PHPも使用しておらず、WordPressのファイルも存在しません。

自動スキャナーがこのようなトラフィックを生成します。彼らはインターネット上に推測を撒き散らし、以下を探索しています:

  • シークレットおよび設定ファイル – 試行の64%
  • PHPパネルおよびシェル – 22%
  • WordPressのパス – 11%
  • データベースツール – 1%

ブロックされたリクエスト数が多いことは、ボットが想定しているソフトウェアを稼働させていないことを示しているに過ぎません。現在稼働しているアプリケーションが安全であることを保証するものではありません。

静かに忍び寄る、フレームワークレベルの攻撃

攻撃者がNext.jsアプリを標的にする場合、トラフィックは通常のユーザーリクエストのように見え、フレームワーク自身のメカニズムを逆手に取って攻撃を行います。

React2Shell (CVE-2025-55182)

React Server Componentsの欠陥により、攻撃者が特別に細工したペイロードを注入し、サーバーがそれをコードとして評価してしまう可能性があります。その結果、ファイアウォールやWebアプリケーションフィルタをバイパスすることなく、完全なリモートコード実行が可能になります。この脆弱性はフレームワークの内部に存在するため、唯一の解決策は修正が含まれているバージョンにアップグレードすることです。

Middleware Authorization Bypass (CVE-2025-29927)

Next.js middlewareは、リクエストヘッダーに基づいてセキュリティチェックを強制できます。このCVEは、攻撃者が特定の内部ヘッダーを送信することで、middlewareにそれらのチェックを完全にスキップさせることができることを示しています。外部からはリクエストは通常のものに見えるため、検知が困難です。

両方のバグは、最も危険なトラフィックが日常的なトラフィックに紛れ込み、騒がしいWordPressの探索を検知するアラームを回避できることを示しています。

リスクの大きさ

  • 開発者がフレームワークのアップデートを任意のものとして扱う場合、サーバーの完全な乗っ取りのリスクを負います。
  • 運用チームがスタックの要塞化を静的な設定に頼っている場合、フレームワーク自体の中で実行されるコードを防ぐことができません。

実践的な防御チェックリスト

  1. デプロイの衛生管理.env などのファイルにシークレットを含めて配布しないでください。実行時に提供される環境変数、または専用のシークレット管理システムに保存してください。
  2. 攻撃対象領域(アタックサーフェス)の最小化 – 使用していないフレームワークの機能はオフにしてください。許可されていないスクリプトの読み込みをブロックする厳格なContent-Security-Policyを適用してください。
  3. 迅速なパッチ適用 – 新しいフレームワークのバージョンがリリースされてから数時間以内にテストおよびデプロイできるよう、ビルドパイプラインを自動化してください。セキュリティアップデートは、後回しにするものではなく、リリースサイクルの定期的な一部として扱ってください。

今後の対策

  • React、Next.js、および依存しているその他のランタイムライブラリの公式セキュリティアドバイザリフィードを購読してください。
  • JavaScriptパッケージのメタデータを理解する脆弱性スキャナーを統合し、新たに公開されたCVEが自動的にアラートをトリガーするようにしてください。
  • ロールバック可能なデプロイパイプラインを構築してください。パッチによってデグレードが発生した場合でも、システムを露出させたままにすることなく、迅速に元の状態に戻すことができます。

教訓は明白です。ログの中で最も騒がしい攻撃は、しばしば目をそらすためのミスディレクションです。真の危険は、コードが信頼しているフレームワークの中に隠れています。スタックを軽量に保ち、シークレットを安全に保存し、パッチ適用をルーチンとして扱うことで、静かなフレームワークレベルの脅威を管理可能なリスクに変えることができます。