React2Shellの公表を受けて、開発者コミュニティによるReact Server Componentsの調査が進みました。その結果、追加でパッチ適用が必要な脆弱性が2件判明しました。CVE-2025-55184(DoS、サービス拒否)および CVE-2025-55183(ソースコード漏えい)です。これらはReact 19と、React 19を利用するNext.jsなどのフレームワークに影響します。
いずれの脆弱性も、リモートコード実行を許すものではありません。
パッチが公開されると、研究者たちは回避手法や類似の攻撃方法、見落とされていたエッジケースがないかをさらに掘り下げて調査します。エコシステムの継続的な検証と強化に貢献してくださっているセキュリティコミュニティの皆さまに感謝いたします。
最新の情報については、このページおよびVercel DevelopersのXアカウントを定期的にご確認ください。Vercelのダッシュボードにも順次情報を反映します。
この脆弱性は、Reactの 19.0.0 から19.2.1 までのバージョンと、Next.jsの 13.x から 16.x までの全てのバージョンに影響します。
該当するバージョンを利用している場合は、他の防御策に頼らず、直ちにアップグレードしてください。
パッチの適用方法についての詳細は、後述の「Next.jsアプリをアップグレードし、脆弱性から守る方法」を参照ください。
| 日付 | 更新内容 |
| 日本時間 12月12日 午前9時31 分 | 最初に公開されたパッチは不完全で、すべてのペイロードの型に対するDoS攻撃を完全には防げていませんでした。この不備はCVE-2025-67779として報告されています。すべてのユーザーは、後述のパッチ適用済みバージョンの表に記載されたバージョンへアップグレードする必要があります。 |
- アプリケーションをアップグレードすべきか
- CVE-2025-55184とCVE-2025-55183について
- Next.jsアプリをアップグレードし、脆弱性から守る方法
- その他のフレームワークのアップグレード方法
これらの脆弱性は、Reactのバージョン 19.0.0、19.0.1、19.1.0、19.1.1、19.1.2、19.2.0、19.2.1 に存在し、以下のパッケージが影響を受けます。
react-server-dom-parcelreact-server-dom-webpackreact-server-dom-turbopack
上記のパッケージは、以下のフレームワークやバンドラーに含まれています。
- Next.js:
13.x、14.x、15.x、16.x - React Server Componentsの実装を組み込んでいる、またはそれに依存しているその他のフレームワークやプラグイン(例:Vite、Parcel、React Router、RedwoodSDK、Wakuなど)
サービス拒否(Denial of Service、CVE-2025-55184)
悪意のあるHTTPリクエストを任意のApp Router エンドポイントに送信することで、デシリアライズ時にサーバープロセスがハングし、CPUを消費し続ける状況を引き起こす可能性があります。
ソースコード露出(Source Code Exposure、CVE-2025-55183)
悪意のあるHTTPリクエストを任意のApp Router エンドポイントに送信することで、、Server Actionsのコンパイル済みソースコードが返されてしまう可能性があります。これにより、ビジネスロジックが明らかになるおそれがあります。ただ、シークレットの値については、Server Actionのコード内に値を直接書き込んでいない限り流出することはありません。
Vercelは、これらの脆弱性を防ぐための新しいルールをVercel WAFに適用しました。Vercel上でホスティングされているすべてのプロジェクトは、追加費用なしで自動的に保護されます。
VercelのWAFルールは、既知のエクスプロイトパターンをフィルタリングすることで、追加の防御レイヤーを提供します。
なお、WAFルールはあらゆるバリエーションの攻撃に対する完全な防御を保証するものではありません。即時にパッチ適用済みバージョンへのアップグレードが必要です。
目次:
VercelのSecurity Actionsダッシュボードでは、対応が必要なセキュリティ上の問題と、その是正手順を一元的に確認できます。Security Actionsダッシュボードにアクセスするにはこちらをクリックしてください。
本番環境のデプロイにパッチを適用した後も、過去の脆弱なデプロイは脆弱なままです。本番ドメイン以外のすべてのデプロイに対して、Standard Protectionを有効化することを強く推奨します。
デプロイ保護に守られていないプロジェクトの一覧はSecurity Actionsダッシュボードからご覧になれます。もしくは、デプロイ保護設定を再確認してください。
外部ユーザーが、Protection Bypassを適切に設定していないプレビューデプロイやその他の環境からのデプロイを利用していないことを確認してください。(詳しくはドキュメントを参照ください)
デプロイの共有リンクもそれぞれ確認してください。また、プレビュー環境やカスタム環境のデプロイドメインを共有するために、デプロイ保護を無効化している方もいらっしゃるかもしれません。その場合は、Deployment Protection Exceptionを導入することを検討し、除外したデプロイ全てにパッチを適用してください。
Vercel Agent は、脆弱性のあるプロジェクトを自動的に検出し、パッチを適用するプルリクエストを作成できます。
Vercelのダッシュボードから脆弱なプロジェクトを確認し、自動アップグレードを開始してください。
fix-react2shell-next というコマンドラインツールを使うと、すぐにNext.jsプロジェクトのパッケージを脆弱性のないバージョンにアップグレードできます。fix-react2shell-next は、以前のReact2Shellの脆弱性に加えて、本記事で解説している脆弱性の修正も行えるように更新されています。
現在のバージョンをチェックし、アップグレードを適用するには以下のコマンドを実行してください。
npx fix-react2shell-next動作確認後、すぐに更新されたアプリケーションをデプロイしてください。詳しくは、後述の「デプロイの手順」をご覧ください。
1. 現在のバージョンを確認する
現在のNext.jsのバージョンを確認するには、アプリのページをブラウザで表示し、コンソールで next.version を実行してください。または、 package.json をご確認ください。
{ "dependencies": { "next": "15.3.4" }}2. パッチ適用済みバージョンへアップデートする
以下の一覧から、どのバージョンにアップデートすべきかを確認してください。
| バージョン | DoS (CVE-2025-55184) | ソースコード露出 (CVE-2025-55183) | 修正されたバージョン |
|---|---|---|---|
| Next.js >=13.3 | ✔️ | — | 14.2.35にアップグレードしてください |
| Next.js 14.x | ✔️ | — | 14.2.35 |
| Next.js 15.0.x | ✔️ | ✔️ | 15.0.7 |
| Next.js 15.1.x | ✔️ | ✔️ | 15.1.11 |
| Next.js 15.2.x | ✔️ | ✔️ | 15.2.8 |
| Next.js 15.3.x | ✔️ | ✔️ | 15.3.8 |
| Next.js 15.4.x | ✔️ | ✔️ | 15.4.10 |
| Next.js 15.5.x | ✔️ | ✔️ | 15.5.9 |
| Next.js 15.x canary | ✔️ | ✔️ | 15.6.0-canary.60 |
| Next.js 16.0.x | ✔️ | ✔️ | 16.0.10 |
| Next.js 16.0.x canary | ✔️ | ✔️ | 16.1.0-canary.19 |
Pagesルーターを利用したNext.jsアプリケーションは、この脆弱性の影響を受けません。
PPR(Partial Prerendering)を有効化するためにCanaryリリースをご利用の場合は、15.6.0-canary.60にアップデートしてください。脆弱性を修正しつつ、PPRをご利用いただけます。さらに古いバージョンのパッチ方法については、こちらのディスカッションページをご覧ください。
どのバージョンにアップデートすべきかを確認したら、package.json をアップデートしてください:
{ "dependencies": { "next": "15.3.7" }}3 . 依存関係のインストールとLockファイルのアップデート
ご利用のパッケージマネージャーのインストールコマンドを実行してください。
その後、 package.json の変更に加えて、必ずLockファイルの変更もコミットしてください。
# npmnpm install
# yarnyarn install
# pnpmpnpm install
# bunbun install4. すぐにデプロイする
動作確認後、すぐに更新されたアプリケーションをデプロイしてください。詳しくは、後述の「デプロイの手順」をご覧ください。
動作確認後、すぐに更新されたアプリケーションをデプロイしてください。
Vercelでデプロイする場合、プラットフォーム側ではすでに脆弱なバージョンの新規デプロイをブロックしており、WAFルールも適用されています。それでもアップグレードは依然として重要です。
Git連携でVercelにデプロイしている場合、パッチ適用のコミットをプッシュするとプレビュー用ビルドが実行され、本番用のブランチにマージすることで本番環境にデプロイできます。VercelのダッシュボードからManual Deploymentを作成して、修正を即座にリリースすることもできます。
Vercel CLIを使用している場合は、以下のコマンドでデプロイしてください。
vercel --prod環境変数のローテーションは、シークレットがコードベース内で平文のまま保存されていた場合にのみ推奨します。
Vercelのチームおよび各プロジェクトで使用している環境変数(シークレット)のローテーション方法について、詳しくはこちらをご確認ください。
React Server Componentsを実装している他のフレームワークを利用している場合は、react.devブログに掲載されているアップグレードの手順をご覧ください。React2Shellについての記事ですが、アップグレードの手順は最新版に更新されています。
本脆弱性についての詳細は、 Reactブログの新しい記事もご覧ください。
該当するソフトウェアの脆弱なバージョンを利用している場合、直ちにパッチ適用済みバージョンへアップデートしてください。
- Next.jsの公式セキュリティアドバイザリ
- その他のご質問がある場合は、 security@vercel.comまでお問い合わせください。