8 ポイント 投稿者 GN⁺ 2025-12-06 | 5件のコメント | WhatsAppで共有
  • React サーバーコンポーネントで認証なしに任意のコードを実行できる**リモートコード実行(RCE)**脆弱性が発見され、即時アップグレードが必要
  • Next.jsも影響を受け、App Router機能を使用する場合は脆弱。Next.jsはこれをCVE-2025-66478として追跡中
  • 脆弱性の根本原因は**サーバーサイド・プロトタイプ汚染(server-side prototype pollution)**で、攻撃者はJavaScriptオブジェクトのプロトタイプを操作してchild_process.execSyncなどでコマンドを実行できる
  • **公開PoC(Proof of Concept)**コードが急速に拡散し、Datadogは12月5日現在、800を超えるIPから実際の攻撃試行を検出した
  • CVSSスコアは10点で評価されたこの脆弱性は、Next.js 15.x~16.xバージョンで特に深刻で、最新パッチの適用が必須

主な脆弱性の概要

  • 12月3日、React Server Componentsで認証なしに任意コード実行が可能な脆弱性が発見され、CVE-2025-55182として登録
    • 脆弱性はサーバー側で実行され、攻撃者はリモートからコードを実行できる
  • Next.jsは該当の脆弱コンポーネントを含むため影響を受ける
    • Next.jsはCVE-2025-66478として別途追跡しているが、NVDはこのCVEを公式に拒否
  • CVSSスコアは10/10で、Datadogは攻撃が非常に簡単で、標準テンプレートで作成したNext.jsアプリでも再現可能であることを確認した
  • 12月5日現在、実践的なペイロードを含む実攻撃試行が観測

影響を受けるバージョンと対策

  • 脆弱なReactライブラリ:
    • react-server-dom-parcelreact-server-dom-webpackreact-server-dom-turbopack
    • 脆弱バージョン: 19.0~19.2.0 / パッチ版: 19.0.1, 19.1.2, 19.2.1
  • Next.js影響バージョン
    • 脆弱: 15.x、16.x、14.3.0-canary.77以降
    • パッチ: 15.0.5, 15.1.9, 15.2.6, 15.3.6, 15.4.8, 15.5.7, 16.0.7
  • npm auditコマンドで脆弱性の有無を確認可能
  • 解決策は、パッチ済みバージョンへアップグレードすること

脆弱性分析およびPoC

  • 12月3日、Reactリポジトリにパッチコードがコミット
    • 修正内容はrequireModule関数でオブジェクトプロパティの存在確認を行うよう変更
  • この脆弱性はサーバーサイド・プロトタイプ汚染タイプで、オブジェクトのプロトタイプを汚染して任意コード実行を可能にする
  • 公開済みPoC:
    • 1つ目のPoC(ejpir/CVE-2025-55182-poc)は非稼働状態
    • 2つ目のPoC(msanft/CVE-2025-55182)は標準のNext.jsアプリでも稼働
    • 12月5日、当初の報告者Lachlan Davidsonが3種類の正式PoCを公開

実際の攻撃活動

  • Datadogは12月3日22時(UTC)からスキャン活動を検出
    • 12月5日現在、800を超えるIPでスキャンおよび攻撃試行を確認
    • 2つ以上の組織が攻撃対象となり、12月4日以降継続的な活動が観測
  • 攻撃フロー:
    • 初期段階では非稼働PoCベースのスキャン
    • その後Moritz SanftのPoC、最後にDavidsonのPoCへとペイロードを切り替え
  • 観測されたペイロード:
    • /etc/passwdの読み取り、whoami実行、curlwgetを使ったリモートスクリプトダウンロードなど
    • 一部には環境変数(.env)の窃取およびシステム情報収集機能が含まれる

サーバーサイド・プロトタイプ汚染の概念

  • CWE-1321タイプで、オブジェクトのプロトタイプ属性が不適切に管理された場合に発生
  • 通常はフロントエンドでXSSとして悪用されるが、サーバーサイドではRCEまたはファイル読み取りにつながる可能性がある
  • サンプルコードでは__proto__を介した汚染によりObject.prototypeが更新され、以降に生成されるオブジェクトすべてが影響を受ける
  • 結果として、spawnSync('sh')呼び出し時に悪意のあるコマンドが入力として渡されて実行される

Datadogの検知と防御機能

  • Datadog Code SecurityはGitHubまたはランタイムで脆弱ライブラリを検出
    • CVE-2025-55182またはCVE-2025-66478に関する検索機能を提供
  • **Datadog App and API Protection(AAP)**はランタイムで攻撃をブロック可能
  • Datadog Workload ProtectionはNodeプロセスでwgetcurlbashなどのコマンド実行を検出するカスタムルールを提供

参考資料

  • 公式推奨: React, Next.js
  • クラウドプロバイダ対応: AWS, Vercel, Google Cloud, Akamai, Cloudflare
  • セキュリティ企業の分析: Wiz, Tenable, SearchLight Cyber
  • CERT警告: CERT-EU, CERT-SE, CERT-AU
  • 公開スキャナー: assetnote/react2shell-scanner

5件のコメント

 
stech 2025-12-08

最近のVercelチームはひどい有様ですね。React/Nextから離れる時が来たように思えます。

 
jeiea 2025-12-08

良いことではありませんが、もっと良い対応はあるでしょうか?

 
laeyoung 2025-12-07

Vercelチームが、該当バージョンを一括でアップデートするための npx command を配布していたようです。

npx fix-react2shell-next

 
shakespeares 2025-12-07

npm audit コマンドで脆弱性の有無を確認して、アップデートする必要がありそうですね..