ペンリジェント・ヘッダー

パッチを超えて:fix-react2shell-nextの内部とCVE-2025-66478 "React2Shell "エクスプロイト

CVSSスコア10.0の「React2Shell」脆弱性は、Reactエコシステムの信頼モデルを打ち砕いた。この記事では、エクスプロイトのハードコアな技術的分析を提供し、その理由を説明する。 Next.jsは最近、開発者がリスクの高い「React2Shell」脆弱性(CVE-2025-66478)を迅速に検出・修正するための専用コマンドラインツール「fix-react2shell-next」をリリースした。そして、PenligentのようなAIを駆使したセキュリティ・プラットフォームが、このような複雑なロジックの欠陥を発見するためにどのように進化しているのかを探る。

React2Shell ペンリジェント

はじめにRSCにおける信頼の崩壊

ベテランのセキュリティ・エンジニア向け、 CVE-2025-66478 は単なる依存関係の更新ではない。のアーキテクチャーの根本的な破壊を意味する。 リアクト・サーバー・コンポーネント(RSC).

この脆弱性により、認証されていない攻撃者は、細工したバイナリストリームをサーバーに送信するだけで、任意のコードを実行することができる。フレームワークは、認可を検証する前に、このストリームを盲目的にデシリアライズします。この重大な脅威への対応として Next.jsは最近、開発者がリスクの高い「React2Shell」脆弱性(CVE-2025-66478)を迅速に検出・修正するための専用コマンドラインツール「fix-react2shell-next」をリリースした。.このツールを理解することは、迅速なセキュリティ戦略に不可欠である。

戦術的対応fix-react2shell-nextの解体

Vercelは単にパッチをリリースしただけでなく、自動修復エージェントをリリースしたのだ。複雑なモノレポ環境では、脆弱性のあるすべてのバージョンの react-server-dom-webpack は災いの元だ。その フィックスリアクト2シェルネクスト ツールは、依存関係ツリーを外科的に修復するように設計されている。

AIペンテストツールPenligent
RSCへの信頼の崩壊

ツールの仕組み

を実行すると npx fix-react2shell-nextこのツールは多段階の操作を行う:

  1. 再帰的依存関係スキャン:根元で止まらない package.json.を横断する。 ノードモジュール ツリーを使用して、RSCレンダラーの脆弱なバージョンに依存している可能性のあるネストした依存関係を特定する。
  2. 決定論的バージョンロック:厳格なアップグレードパスを強制する:
    • Next.js 15.xが次のバージョンにアップグレードされた。 15.1.9+.
    • Next.js 16.xが次のバージョンにアップグレードされた。 16.0.7+.
    • また、ロックファイル(パッケージロック.json または pnpm-lock.yaml)を使用して、これらの変更が不変であることを保証する。
  3. カナリア解像度:不安定なCanaryビルドを最も近いセキュアな安定版ビルドに自動的にマッピングし、緊急パッチウィンドウ中のビルドの破損を防ぎます。

使用シナリオ

バッシュ

# インタラクティブモード (初回実行時推奨) npx fix-react2shell-next

CI/CD自動化モード(プロンプトなしで強制修正)

npx fix-react2shell-next -fix -json

監査モード(修正せずにチェック)

npx fix-react2shell-next -dry-run`.

脆弱性の解剖:デシリアライズの罠

重大性を理解するためには、ワイヤ・プロトコルを見なければならない。CVE-2025-66478は リアクト・フライト・プロトコル-サーバーとクライアントの通信に使われるバイナリ形式。

悪意のあるペイロード

この欠陥は、サーバーが "モジュール参照 "をデシリアライズする方法にある。攻撃者は $@ 識別子を使用して、決して公開されるべきでない Node.js の内部モジュールを参照します。

概念的なエクスプロイト構造:

HTTP

POST /page HTTP/1.1 Next-Action: a9fa42b4... Content-Type: multipart/form-data; boundary=--WebKitFormBoundary

--WebKitFormBoundary Content-Disposition: form-data; name="1_action_arg"

{$@1":["$@2",null,{"filepath": "child_process", "name": "exec"}]。// サーバーはこのオブジェクトを「ハイドレート」しようとし、exec関数を実行します。

なぜなら、このデシリアライズは 以前 アプリケーションロジックが実行されるとき、認証ミドルウェア(NextAuth.jsなど)はしばしば完全にバイパスされます。

CVE-2025-66478 「React2Shell」のエクスプロイト

従来のセキュリティ・ツールはなぜ失敗したのか

レガシーなセキュリティツールは、この攻撃ベクトルに対して盲点だった。

  • WAF失明:ほとんどのWAFは マルチパート/フォームデータ ファイルアップロードのように。これらはSQLキーワードやスクリプトタグをスキャンしますが、RSCのバイナリ文法は理解しません。有効なフライトペイロードは、たとえ悪意のあるものであっても、正規表現エンジンには良性のデータに見える。
  • DAST失敗:レガシースキャナー(DAST)はリンクのクロールに依存しています。Next.jsのサーバーアクションは、ハッシュ化された識別子を使用します、 a9fa42b4...これらは標準的なURLとして公開されていない。スキャナは単純にエントリーポイントを見つけることができない。

AIセキュリティのフロンティア: ペンリジェント

このようなレガシーツールの失敗は、以下の必要性を浮き彫りにしている。 エージェント型AIセキュリティ.などのプラットフォームがある。 ペンリジェント 攻撃者のように "考える "ことができる、次世代の防衛手段である。

コンテキストを意識した偵察

PenligentのAIエージェントは、ダムスキャナーとは異なり、クライアントサイドのJavaScriptバンドル(ソースマップ)を解析します。隠されたサーバーアクションIDマップを抽出し、アプリケーションのAPI表面領域を数秒で効果的にリバースエンジニアリングします。これにより、Penligentは他のスキャナーでは見ることすらできないエンドポイントをテストすることができます。

PenligentによるワンクリックPoC

プロトコル・ネイティブ・エクスプロレーション

PenligentはReact Flightプロトコルの構文を理解します。構文的には有効だが、意味的には悪意のある高度なペイロードを構築する。

シナリオPenligentは「Update User」アクションを特定する。それは有効な 99% リクエストを作成しますが、ネストされたオブジェクトプロパティにプロトタイプ汚染ガ ジェットを注入します。サーバはリクエスト構造を受け入れ、ロジックフローの奥深くで脆弱性を誘発します。

自動ロジック検証

Penligentはサーバーをクラッシュさせることなく脆弱性を検証する。OOB(Out-of-Band)技術を使用し、サーバーに制御されたエンドポイントへのDNSリクエストを発行させます。これにより、従来のツールにありがちな誤検出のリスクなしに、100%の確実なRCEを実現します。

結論と改善策

CVE-2025-66478は警鐘となる。Next.jsのようなフレームワークでサーバーの複雑さを抽象化すると、新たな不透明な攻撃対象が出現する。

当面の行動計画

  1. ツールの実行:走る npx fix-react2shell-next 即座に全フリートで
  2. 秘密のローテーション:環境変数が侵害されたと仮定する。AWSキー、データベースパスワード、APIトークンを直ちにローテーションしましょう。
  3. テストの近代化:静的スキャンを超える。統合 AIによる侵入テスト Penligentのようなツールは、従来のツールが見逃していたロジックの欠陥を検出します。

AIがコードを生成する時代には、セキュリティも同様にインテリジェントでなければならない。

推奨される権威あるリソース

記事を共有する
関連記事