
React Server Components(RSC)の「Flight」プロトコルに「React2Shell」と名付けられた最大深刻度の脆弱性が存在し、ReactおよびNext.jsアプリケーションにおいて認証なしにリモートでコードが実行される可能性がある。
このセキュリティ問題は、安全でないデシリアライゼーションに起因している。この問題の深刻度は10/10で、ReactにはCVE-2025-55182、Next.jsにはCVE-2025-66478(National Vulnerability DatabaseのCVE rejected)という識別子が割り当てられている。
セキュリティ研究者のLachlan Davidson氏がこの欠陥を発見し、11月29日にReactに報告した。同氏は、攻撃者が特別に細工したHTTPリクエストをReact Server Functionのエンドポイントに送信することで、リモートでコードを実行(RCE)できることを発見した。
「あなたのアプリがReact Server Functionのエンドポイントを実装していなくても、あなたのアプリがReact Server Components [RCS]をサポートしていれば、脆弱性が残っている可能性があります」とReactからのセキュリティ勧告は警告している。
デフォルト設定の以下のパッケージが影響を受ける:
- react-server-dom-parcel
- react-server-dom-turbopack
- および react-server-dom-webpack
Reactは、ユーザーインターフェイスを構築するためのオープンソースのJavaScriptライブラリです。Meta社によってメンテナンスされており、フロントエンドのウェブ開発のためにあらゆる規模の組織で広く採用されている。
Vercel社が保守するNext.jsは、Reactの上に構築されたフレームワークで、サーバーサイドレンダリング、ルーティング、APIエンドポイントを追加する。
どちらのソリューションも、フロントエンド・アプリケーションを通じてクラウド環境に広く存在し、アーキテクチャをより迅速かつ容易に拡張・展開するのに役立っている。
クラウドセキュリティプラットフォームWizの研究者は、この脆弱性は悪用が容易であり、影響を受けるパッケージのデフォルト設定に存在すると警告している。
影響と修正
Reactによると、この脆弱性はバージョン19.0、19.1.0、19.1.1、19.2.0に存在する。Next.jsは、14.3.0-canary.77から始まる実験的なcanaryリリース、およびパッチが適用されたバージョン以下の15.xおよび16.xブランチのすべてのリリースで影響を受ける。
この欠陥はReact Server Components(RSC)で使用される「react-server」パッケージに存在するが、Next.jsはRSCの「Flight」プロトコルの実装を通じてこの欠陥を継承している。
Wizの研究者によると、彼らが可視化している全クラウド環境の39%に、CVE-2025-55182、CVE-2025-66478、またはその両方に脆弱なバージョンのNext.jsまたはReactのインスタンスが含まれているという。
同じ脆弱性は、Vite RSCプラグイン、Parcel RSCプラグイン、React Router RSCプレビュー、RedwoodSDK、Wakuなど、React Serverを実装する他のライブラリにも存在する可能性が高い。
ソフトウェア・サプライチェーンのセキュリティ企業であるEndor Labsは、React2Shellについて、”サーバーが受信するRSCペイロードの構造を適切に検証できない、論理的に安全でないデシリアライズの脆弱性である “と説明している。
攻撃者から不正な形式のデータを受信する際に検証の失敗があり、その結果、サーバーのコンテキストで特権のあるJavaScriptコードが実行されてしまう。
Davidson氏はReact2Shellのウェブサイトを作成し、技術的な詳細を公開する予定だ。研究者はまた、本物ではない概念実証(PoC)エクスプロイトが存在することを警告している。
これらのPoCは、vm#runInThisContext、child_process#exec、fs#writeFileといった関数を呼び出しているが、本物のエクスプロイトにはこれは必要ない、と研究者は言う。
「これは、クライアントにこれらを起動させることを意識的に選択した場合にのみ悪用可能であり、どのような場合でも危険である」とDavidson氏は指摘する。
Davidson氏はさらに、Next.jsではサーバー機能のリストが自動的に管理されるため、これらの関数が存在しないため、これらの偽PoCは動作しないと説明している。
開発者は、Reactのバージョン19.0.1、19.1.2、19.2.1、Next.jsのバージョン15.0.5、15.1.9、15.2.6、15.3.6、15.4.8、15.5.7、16.0.7で利用可能な修正プログラムを適用することを強く推奨する。
組織は、脆弱なバージョンを使用しているかどうかを判断するために環境を監査し、リスクを軽減するために適切な措置を講じるべきである。
2つのソリューションの人気は週間ダウンロード数に反映されており、ReactはNode Package Manager (NPM)で5,580万を数え、Next.jsは同じプラットフォームで1,670万となっている。
.ia_ad { background-color:#width: 95%; max-width: 800px; margin: 15px auto; border-radius: 8px; border:1px solid #d6ddee; display: flex; align-items: stretch; padding: 0; overflow: hidden; }:0; overflow: hidden; } .ia_lef { flex: 1; max-width: 200px; height: auto; display: flex; align-items: stretch; } .ia_lef a { display: flex; width: 100%; height: 100%; } .ia_lef a img { width: 100%; height: 100%; border-radius: 8px 0 0 8px; margin: 0; display: block; } .ia_rig { flex: 2; padding:display: flex; flex-direction: column; justify-content: center; } .ia_rig h2 { font-size: 17px !important; font-weight: 700; color:#line-height: 1.4; font-family:margin: 0 0 14px 0; } .ia_rig p { font-weight: bold; font-size: 14px; margin: 0 0 clamp(6px, 2vw, 14px) 0; } .ia_button { background-color:#border:1px solid #3b59aa; color: black; text-align: center; text-decoration: none; border-radius: 8px; display: inline-block; font-size: 16px; font-weight: bold; cursor: pointer; padding:width: fit-content; } .ia_button a { text-decoration: none; color: inherit; display: block; } @media (max-width: 600px) { .ia_ad { flex-direction: column; align-items: center; } .ia_lef { max-width: 100%; } .ia_lef a img { border-radius: 8px 8px 0 0; } .ia_rig { padding:15px;
width: 100%;
}
.ia_button {
width: 100%;
margin: 0px auto;
}
}
Bitpanda、KnowBe4、PathAIのようなIAMサイロを破壊する
壊れたIAMはITだけの問題ではありません – その影響はビジネス全体に波及します。
この実用的なガイドでは、従来の IAM の慣行が現代の要求に追いつけない理由、「優れた」 IAM とはどのようなものかの例、拡張可能な戦略を構築するための簡単なチェックリストについて説明します。




Comments