PR

React/Next.jsのRSC重大欠陥で未認証RCE、至急更新

Security

Source:https://thehackernews.com/2025/12/critical-rsc-bugs-in-react-and-nextjs.html

🛡 概要

React Server Components(RSC)とNext.js(App Router)に、未認証の攻撃者によるサーバ側任意コード実行(RCE)が可能となる重大な欠陥が報告されました。CVE-2025-55182(React RSC系)およびCVE-2025-66478(Next.js)はいずれもCVSS 10.0の最高深刻度です。RSCペイロードの処理に起因する論理的なデシリアライゼーション問題により、細工されたHTTPリクエストを受けたサーバが任意のJavaScriptを実行してしまう恐れがあります。Wizの調査では、クラウド環境の約39%に脆弱インスタンスが存在するとされ、即時のアップデートが推奨されます。

🔍 技術詳細

本脆弱性は、ReactがServer Function(サーバ側で実行される関数呼び出し)向けに送信されるRSCペイロードを復号・解釈する処理に欠陥があり、入力の安全性が十分に検証されないままオブジェクトの復元や評価が行われることが根本原因です。攻撃者は、特定の形式に整えたRSCリクエストを公開エンドポイントへ送信し、サーバ側のReact実装が当該ペイロードをデシリアライズする過程を悪用して、任意のJavaScriptをサーバプロセス権限で実行できます。アプリがServer Functionを明示的に実装していない場合でも、RSCを有効化しているだけで影響を受ける構成があります。対象はnpmパッケージreact-server-dom-webpack / react-server-dom-parcel / react-server-dom-turbopackの19.0、19.1.0、19.1.1、19.2.0で、修正版は19.0.1、19.1.2、19.2.1です。Next.jsではApp Router利用時に影響し、影響バージョンは>=14.3.0-canary.77、>=15、>=16で、修正版は16.0.7、15.5.7、15.4.8、15.3.6、15.2.6、15.1.9、15.0.5です。RSCをバンドルする他のライブラリ(例: Vite RSC plugin、Parcel RSC plugin、React Router RSC preview、RedwoodJS、Waku等)も影響を受ける可能性があります。いずれのCVEもCVSS 10.0で、ネットワーク経由・認証不要・ユーザ操作不要でRCEに至る点が特に危険です。

⚠ 影響

RCEが成立すると、機密データの窃取、認証情報の奪取、サプライチェーン攻撃の踏み台化、ランサムウェア展開、追加バックドア設置など広範な被害が想定されます。Next.js/Node.jsプロセス権限でのコマンド実行、ファイル改ざん、環境変数からの秘密情報抽出、外部C2への通信開始などが現実的な攻撃シナリオです。可用性面でも、DoSや暗号化によるサービス停止のリスクが高い状況です。

🛠 対策

1) 至急アップデート: React RSC系は19.0.1/19.1.2/19.2.1へ、Next.jsは16.0.7/15.5.7/15.4.8/15.3.6/15.2.6/15.1.9/15.0.5へ更新。CI/CDのロックファイルも更新し、デプロイまで完了させてください。npm ls react-server-dom-webpack等で依存の混在を確認します。2) 一時緩和: パッチ適用までRSC/Server Function関連エンドポイントへの外部アクセス制限(リバースプロキシ/WAFでパス単位のブロックやIP許可制)、不要なRSC機能の無効化、ステージングや管理パスの外部公開停止を検討。3) 実行環境の堅牢化: Node.js実行ユーザの非特権化、コンテナ/AppArmor/SELinuxによるファイル・ネットワーク制限、アウトバウンド通信の最小化、秘匿情報(トークン/DB資格情報)の分離保護と必要最小権限化。4) 侵害の有無確認: ログレビュー、疑わしい子プロセス生成、改ざん痕跡、異常外向通信の有無を点検し、必要に応じて資格情報のローテーションを実施。

📌 SOC視点

– ログ/テレメトリ: 逆プロキシとアプリケーションログの相関(短時間の大量POST、異常なContent-Type/ペイロード長、デコード失敗エラーの急増)。Node/Next.jsプロセスからのchild_process生成、予期しないファイル書込や動的requireの増加、外向きDNS/HTTP接続の新規出現を監視。- ルール例: Node由来のシェル/ユーティリティ呼び出し(sh、bash、powershell、cmd、curl、wget、nc等)、プロセスツリーでnode→shell→netツールの連鎖、アプリユーザ権限による横展開痕跡。- レスポンス: 兆候検知時は直ちにトラフィック制限、該当Pod/インスタンス隔離、メモリ/ディスクイメージ取得、秘密情報ローテーション、修正版へのローリング更新。

📈 MITRE ATT&CK

– Initial Access: Exploit Public-Facing Application (T1190) 公開Webエンドポイント(RSC/Server Function)に対する細工リクエストで初期侵入が成立します。- Execution: Command and Scripting Interpreter: JavaScript (T1059.007) デシリアライズ悪用によりサーバ側で任意のJavaScriptが実行されます。状況により、その後のペイロード取得や横展開が続く可能性があります。

🏢 組織規模別助言

– 小規模(〜50名): まずは影響アプリの特定と即時アップデート。WAFや逆プロキシで該当ルートを一時遮断し、マネージドEDRのアラートを重点監視。- 中規模(50〜500名): 変更管理の下で段階的パッチ展開、Blue/Green又はカナリアでリスク低減。資産台帳とSBOMでRSC依存を横断特定し、攻撃監視のダッシュボード化。- 大規模(500名以上): 全環境で自動検出・自動修復(パッチ適用)パイプラインを起動。攻撃シミュレーション(レッドチーム/紫チーム)で検知品質を検証し、CIRTで統合対応手順を運用。

🔎 類似事例

– CVE-2021-44228(Log4Shell): ログ入力処理の不備からRCEに至った例。- CVE-2022-22965(Spring4Shell): リクエスト処理の不備により任意コード実行。いずれも入力処理の安全性欠如が根因で、本件と同様に迅速なパッチ適用が最重要です。

🧭 次の一手

1) 影響スキャン: 依存関係と稼働中コンテナを横断し、該当バージョンのRSC/Next.jsを棚卸し。2) パッチ適用: 修正版への更新と即時デプロイ、ロールバック計画の準備。3) 侵害調査: 直近30〜90日のログで不審なRSCペイロードや子プロセス痕跡を確認、必要に応じ端末隔離と秘密情報ローテーション。4) 恒久対応: WAFルール整備、最小権限・ネットワーク分離、SBOM運用と継続的脆弱性管理を強化。