1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【CVE-2025-55182】Next.js / React Server Componentsに脆弱性【CVSS 10.0】

1
Posted at

掲題の件ですが、既に数日経っており対応進められている方多いと思いますが、まだ対応されていない方もいると思いますので、一拍置いて注意喚起です。

本記事は脆弱性対応を促すものですが、対応を行う際はご自身の環境と照らし合わせて実施検討して下さい。

1.概要

React Server Components (RSC) の実装において、認証不要でリモートコード実行 (RCE) が可能となるクリティカルな脆弱性が発見されたようです。
この脆弱性はReact本体(react-server)に起因するものですが、これを採用しているNext.js (App Router利用時) に直接的な影響を及ぼすとのこと。

攻撃者は細工したHTTPリクエストを送信するだけで、サーバー上で任意のコードを実行できる可能性があります。すでにPoC(概念実証コード)が出回っており、悪用されるリスクが非常に高いため、直ちにアップデートが必要です。

CVE ID: CVE-2025-55182 (Next.js側では CVE-2025-66478 として追跡されていましたが、根本原因である本CVEに集約される傾向があります)

深刻度: Critical (CVSS Score: 10.0)

脆弱性の種類: 安全でないデシリアライゼーション (Insecure Deserialization)

2.報告日 / 公開日

公開日: 2025年12月3日(現地時間)

日本国内での周知: 2025年12月4日~5日にかけてJPCERT/CCや各セキュリティベンダーより順次注意喚起

3.影響範囲と修正バージョン

主に App Router を使用している Next.js プロジェクトが対象です。

①React Server Components (React本体)
以下のバージョンを使用している場合、脆弱性の影響を受けます。

状態 バージョン
影響あり 19.0.0, 19.1.0, 19.1.1, 19.2.0
修正済み 19.0.1, 19.1.2, 19.2.1 (またはそれ以降)

※ react, react-dom, react-server-dom-* パッケージが対象です。

②Next.js (App Router利用時)

以下の表の「修正済みバージョン」までアップデートする必要があります。

系列 影響を受けるバージョン
(以下およびそれ以前のすべて)
修正済みバージョン
(これ以上)
v16 系 16.0.6 以下 16.0.7 以上
v15.5 系 15.5.6 以下 15.5.7 以上
v15.4 系 15.4.7 以下 15.4.8 以上
v15.3 系 15.3.5 以下 15.3.6 以上
v15.2 系 15.2.5 以下 15.2.6 以上
v15.1 系 15.1.8 以下 15.1.9 以上
v15.0 系 15.0.4 以下 15.0.5 以上

③Canary版 (開発版) の場合

  • 影響あり: 14.3.0-canary.77 以降の全Canary版
  • 修正済み: 最新の Canary リリース(例: 16.0.7-canary.x 以降を確認推奨)へ更新、またはStable版へ切り替え。

4.内容詳細

本脆弱性は、React Server Components がサーバーとクライアント間で通信を行う際に使用する「Flight プロトコル」の処理に起因します。

  • 原因:
    サーバーがクライアントからのリクエスト(Flightペイロード)を受け取る際、入力値の検証が不十分なままデシリアライズ(復元)を行ってしまう点にあります。

  • 攻撃手法:
    攻撃者は特定のフォーマットで細工したHTTPリクエストを送信することで、サーバー側のプロトタイプ汚染などを引き起こし、最終的に child_process.exec などを経由して任意のOSコマンドを実行させることが可能です。

  • 特徴:
    認証不要: ログイン画面や公開ページなど、認証前のエンドポイントに対して攻撃可能です。
    デフォルト構成で影響: 特別な設定をしていなくても、App Routerを使用している標準的な構成で影響を受けます。

5.修正方法(対策)

Next.js および React 関連パッケージを、修正パッチが適用された最新バージョンへアップグレードしてください。

Next.js のアップグレード

# npmの場合
npm install next@latest react@latest react-dom@latest

# yarnの場合
yarn add next@latest react@latest react-dom@latest

# pnpmの場合
pnpm upgrade next react react-dom --latest

Vercel等のホスティングサービスを利用している場合でも、アプリケーションのビルド自体に含まれる依存パッケージの問題であるため、コードベース側(package.json)の更新と再デプロイが必須です。

※ちなみに、当方もVercelで利用していたので対応しています。開発者モードでページを開いて確認できる場合があります。(ブラウザの開発者モード⇒ネットワークのどこかに・・・)
↓修正時の確認例
image.png

6.関連する言語・フレームワークなどの補足説明

React Server Components (RSC) を採用する他フレームワークへの影響
本件は Next.js 固有のバグではなく、React (RSC) 自体の脆弱性です。そのため、RSCの実装を利用している他のフレームワークやライブラリも同様に影響を受ける可能性があります。

  • Waku
  • RedwoodJS (RSC有効時)
  • Vite (RSCプラグイン利用時)

「React2Shell」という呼称について
セキュリティコミュニティの一部では、この脆弱性を「React2Shell」と呼称しています。情報収集の際は、CVE番号に加えてこのキーワードでも検索することをお勧めします。

WAFによる緩和策について
一部のWAF(Web Application Firewall)ベンダーでは、この攻撃パターンを検知するルールの配信を開始しています。しかし、ペイロードの難読化などによりすり抜けられる可能性があるため、WAFはあくまで一時的な緩和策とし、根本的なパッケージのアップデートを最優先してください。

以上です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?