React2Shell(CVE-2025-55182)緊急解説|React/Next.jsの重大な脆弱性
CVSSスコア10.0の最大深刻度を持つReact Server Componentsの脆弱性React2Shell(CVE-2025-55182)について、技術的詳細、影響範囲、対策方法を解説します。
2025年12月3日に公開されたReact2Shell(CVE-2025-55182)は、React Server Components(RSC)に存在する認証不要のリモートコード実行(RCE)脆弱性です。CVSSスコア10.0(最大深刻度)を持ち、公開直後から国家支援の攻撃グループによる悪用が確認されています。
脆弱性の概要
| 項目 | 内容 |
|---|---|
| CVE ID | CVE-2025-55182(React)、CVE-2025-66478(Next.js) |
| 名称 | React2Shell |
| CVSSスコア | 10.0(Critical) |
| 発見者 | Lachlan Davidson |
| 報告日 | 2025年11月29日 |
| 公開日 | 2025年12月3日 |
| 脆弱性タイプ | 安全でないデシリアライゼーション |
影響を受けるバージョン
React
| 影響バージョン | 修正バージョン |
|---|---|
| 19.0.0 | 19.0.1 |
| 19.1.0, 19.1.1 | 19.1.2 |
| 19.2.0 | 19.2.1 |
Next.js
| 影響バージョン | 修正バージョン |
|---|---|
| 15.x(App Router使用時) | 15.1.3以降 |
| 16.x(App Router使用時) | 16.0.1以降 |
重要: Pages Routerのみを使用している場合は影響を受けません。App RouterとReact Server Componentsを使用している場合のみ脆弱です。
技術的詳細
根本原因
この脆弱性は、React Server Components(RSC)の「Flight」プロトコルにおける安全でないデシリアライゼーションに起因します。
[攻撃者] → [悪意のあるHTTPリクエスト] → [RSC Flightプロトコル] → [デシリアライゼーション] → [RCE]
Server Functionsを呼び出す際、クライアントから送信されたデータがサーバー側で適切に検証されないまま処理されます。攻撃者は特別に細工されたHTTPリクエストを送信することで、サーバー上で任意のJavaScriptコードを実行できます。
攻撃の特徴
- 認証不要: 攻撃に認証は必要ありません
- デフォルト設定で脆弱:
create-next-appで作成した標準構成が影響を受けます - 高い成功率: 攻撃の成功率はほぼ100%と報告されています
- 単一リクエストで実行可能: 複雑な攻撃チェーンは不要
脆弱なコードの例
以下のような標準的なServer Functionの使用でも脆弱性が発生します:
// app/actions.ts
"use server"
export async function submitForm(data: FormData) {
const name = data.get("name");
// データベースへの保存など
return { success: true };
}
// app/page.tsx
import { submitForm } from "./actions";
export default function Page() {
return (
<form action={submitForm}>
<input name="name" />
<button type="submit">送信</button>
</form>
);
}
この一見無害なコードでも、Flightプロトコルの脆弱性により攻撃が可能です。
悪用状況
タイムライン
| 日付 | イベント |
|---|---|
| 2025年11月29日 | Lachlan DavidsonがMetaに報告 |
| 2025年12月3日 | 脆弱性情報の公開 |
| 2025年12月3日(数時間後) | 中国関連の攻撃グループによる悪用開始 |
| 2025年12月5日 | CISAがKEV(Known Exploited Vulnerabilities)リストに追加 |
| 2025年12月5日以降 | クリプトマイニング目的の攻撃が増加 |
確認された攻撃グループ
複数のセキュリティベンダーの報告によると、以下の脅威アクターによる悪用が確認されています:
- Earth Lamia: 中国関連のAPTグループ
- Jackpot Panda: 中国関連の脅威グループ
- イラン関連アクター: 複数のグループが参入
- 金銭目的の攻撃者: XMRigによるクリプトマイニング
攻撃後の挙動
確認されている攻撃後の活動:
- SNOWLIGHT / VShell Trojanの展開: ファイルレス実行
- XMRigの展開: 暗号通貨マイニング
- Webシェルの設置: 永続的なアクセスの確保
- 横展開: 内部ネットワークへの侵入
影響範囲
Wiz社のデータによると、**クラウド環境の39%**がこの脆弱性の影響を受けるバージョンのNext.jsまたはReactを使用しています。
2024年のState of JavaScriptの調査では、回答者の82%がReactを使用していると報告されており、この脆弱性の潜在的な影響は非常に大きいと言えます。
対策方法
1. 即時アップデート(最優先)
# npmの場合
npm update react react-dom next
# yarnの場合
yarn upgrade react react-dom next
# pnpmの場合
pnpm update react react-dom next
修正バージョンを明示的に指定する場合:
npm install react@19.2.1 react-dom@19.2.1 next@15.1.3
2. バージョン確認
現在使用しているバージョンを確認:
npm list react react-dom next
またはpackage.jsonを確認:
{
"dependencies": {
"react": "^19.2.1",
"react-dom": "^19.2.1",
"next": "^15.1.3"
}
}
3. 一時的な緩和策(アップデートできない場合)
Server Functionsの無効化
next.config.jsで設定:
// next.config.js
module.exports = {
experimental: {
serverActions: {
enabled: false
}
}
}
注意: これによりServer Actions機能が使用できなくなります。
WAFルールの適用
各WAFベンダーが緊急ルールをリリースしています:
- AWS WAF: AWSマネージドルールに追加済み
- Cloudflare: マネージドルールで対応
- Akamai: App & API Protectorで対応
4. 侵害の確認
ログの確認ポイント
# 不審なPOSTリクエストの検索
grep -E "POST.*/_next/|POST.*/api/" /var/log/nginx/access.log
# 異常なプロセスの確認
ps aux | grep -E "node|xmrig"
# 新規作成されたファイルの確認
find /var/www -type f -mtime -7 -name "*.js"
確認すべきIoC(Indicators of Compromise)
- 不審な外部通信(特に中国・イランのIPアドレス)
- 予期しないNode.jsプロセス
- CPU使用率の異常な上昇(クリプトマイニング)
- Webシェルファイルの存在
組織向けの推奨事項
セキュリティチーム向け
- 即時: 影響を受けるシステムの特定とアップデート
- 24時間以内: 侵害の兆候がないか確認
- 1週間以内: WAFルールの確認と強化
- 継続: 脅威インテリジェンスの監視
開発チーム向け
- 依存関係のアップデートプロセスを確認
- CI/CDパイプラインにセキュリティスキャンを追加
npm auditまたはyarn auditの定期実行
# セキュリティ監査の実行
npm audit
# 自動修正(可能な場合)
npm audit fix
チェックリスト
- React/Next.jsのバージョンを確認した
- 修正バージョンにアップデートした
- アップデート後、アプリケーションの動作を確認した
- ログを確認し、侵害の兆候がないことを確認した
- WAFルールが最新であることを確認した
- 開発チームに周知した
参考リンク
- React公式ブログ - Critical Security Vulnerability in React Server Components
- Wiz Blog - React2Shell Deep Dive
- Microsoft Security Blog - Defending against CVE-2025-55182
- CISA KEV Catalog
まとめ
React2Shell(CVE-2025-55182)は、Reactエコシステム史上最も深刻な脆弱性の一つです。
| 対応の緊急度 | 状況 |
|---|---|
| 最優先 | 本番環境でReact 19.x / Next.js 15.x以降を使用している場合 |
| 高 | 開発・ステージング環境で該当バージョンを使用している場合 |
| 中 | React 18.x以前のみを使用している場合(直接の影響なし) |
公開から数時間で国家支援の攻撃グループによる悪用が開始されており、アップデートは一刻を争います。該当バージョンを使用している場合は、直ちにアップデートを実施してください。
RiskLensでは、お使いのWebアプリケーションのセキュリティ状態を診断できます。フレームワークのバージョン情報を含む包括的なセキュリティチェックをお試しください。