はじめに
こんにちは。今朝、セキュリティアラートの通知で飛び起きた方も多いのではないでしょうか?
私もその一人です。Next.js (App Router) を採用しているプロダクトがあり、朝から冷や汗をかきながら緊急対応を行いました。
今回の脆弱性は 「知らないと危ないが、知っていればすぐ直せる」 ものです。
急な対応で疲弊している方もいるかと思いますが、この記事が少しでも作業の助けになれば幸いです。
TL;DR(最初に結論)
React Server Components (RSC) に Critical (深刻) な脆弱性が発見されました。
Next.js 15系・16系、または React 19 を使用している場合、今すぐアップデートが必要です。
🛡️ 何が起きたのか? (CVE-2025-55182 / 66478)
今回開示されたのは、以下の2つのCVEです。
- CVE-2025-55182 (React)
- CVE-2025-66478 (Next.js)
脆弱性の概要
技術的な詳細は 公式アドバイザリ に譲りますが、簡単に言うと 「React Server Components (RSC) の通信・処理における境界線の不備」 です。
RSCはサーバー側でレンダリングを行う強力な機能ですが、特定の条件下で攻撃者が意図しないデータアクセスや処理を実行できてしまう可能性があります。
特に Next.js の App Router はデフォルトで RSC が有効になっているため、設定を変更していない限り 広範囲のプロジェクトが影響を受けます。
🤔 自分のプロジェクトは大丈夫? audit コマンドで確認しよう
package.json を目視で確認するのも良いですが、まずは各パッケージマネージャーに搭載されている audit コマンドを実行するのが最も確実で早いです。
ターミナルで以下のコマンドを実行し、脆弱性が検出されるか確認してください。
🥟 Bun の場合
bun audit
📦 npm の場合
npm audit
🧶 Yarn (v2+) の場合
yarn npm audit
🐙 pnpm の場合
pnpm audit
High または Critical な脆弱性として GHSA-9qr9-h5gf-34mp (Next.js) や関連するCVEが検出されたら、次のステップに進んでください。
⚠️ 影響を受けるバージョンと修正版
auditコマンドで脆弱性が検出された、または手動で確認したい方向けに、影響バージョンと修正済みバージョンをまとめました。
クリックして詳細なバージョン対応表を開く
Next.js を使用している場合
15系、16系を使用している場合は、以下のパッチバージョン(またはそれ以降)へ更新してください。
| 現在のバージョン (Affected) | 修正済みバージョン (Fixed) |
|---|---|
v15.0.x |
👉 v15.0.5 |
v15.1.x |
👉 v15.1.9 |
v15.2.x |
👉 v15.2.6 |
v15.3.x |
👉 v15.3.6 |
v15.4.x |
👉 v15.4.8 |
v15.5.x |
👉 v15.5.7 |
v16.0.x |
👉 v16.0.7 |
React 単体で使用している場合
フレームワークを使わず React 19 を直接導入している場合などが対象です。
| 現在のバージョン (Affected) | 修正済みバージョン (Fixed) |
|---|---|
v19.0.x |
👉 v19.0.1 |
v19.1.x |
👉 v19.1.2 |
v19.2.x |
👉 v19.2.1 |
💻 【コピペ用】アップデートコマンド
脆弱性が確認されたら、以下のコマンドでパッケージを更新しましょう。
基本的には latest (最新) に上げるのが推奨ですが、バージョンを固定したい場合は適宜バージョン番号を指定してください。
Next.js と同時に、依存関係にある react と react-dom も更新することをお勧めします。
🥟 Bun の場合
# 最新版へアップデート
bun add next@latest react@latest react-dom@latest
# 特定バージョン(例: v15.5系)を維持したい場合
# bun add next@15.5.7 react@19.1.2 react-dom@19.1.2
📦 npm の場合
# 最新版へアップデート
npm install next@latest react@latest react-dom@latest
# 特定バージョン(例: v15.5系)を維持したい場合
# npm install next@15.5.7 react@19.1.2 react-dom@19.1.2
🧶 Yarn (v2+) の場合
# 最新版へアップデート
yarn upgrade next@latest react@latest react-dom@latest
🐙 pnpm の場合
# 最新版へアップデート
pnpm update next react react-dom --latest
✅ 対応後の確認
アップデートが終わったら、再度 audit コマンドを実行して脆弱性が消えていることを確認しましょう。
bun audit
# or npm audit / yarn npm audit / pnpm audit
0 vulnerabilities found のようなメッセージが出れば対応完了です。
お疲れ様でした!
おわりに
脆弱性対応は、機能追加と違って「やって当たり前、やらないとマイナス」という性質があり、どうしても精神的な負担がかかりがちです。
しかし、こうして迅速に情報をキャッチし、対応しようとしている皆さんの行動が、ユーザーやサービスを守っています。
私も今朝は焦りましたが、無事デプロイまで完了してホッとしています。
もしこの記事が、忙しい皆さんの調査時間を1分でも短縮できたなら幸いです。
最後に、公式のアドバイザリリンクを貼っておきます。詳細が気になる方は一次情報をご確認ください。
- CVE-2025-55182 (React Vulnerability): https://www.cve.org/CVERecord?id=CVE-2025-55182
- CVE-2025-66478 (Next.js Advisory): https://github.com/vercel/next.js/security/advisories/GHSA-9qr9-h5gf-34mp