🚨

【Next.js】CVE-2025-66478対策は、とりあえず npx fix-react2shell-next した

に公開

なにがあったの?

2025年12月、React Server Components (RSC) 周りに
認証不要でリモートコード実行(RCE)ができてしまう致命的な脆弱性 が見つかりました。

  • React側のCVE: CVE-2025-55182
  • Next.js側のCVE: CVE-2025-66478(のちに 55182 の重複として扱われています)

https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182
https://nextjs.org/blog/CVE-2025-66478

結論:まず npx fix-react2shell-next

いろいろ読み込む前に、とりあえずこれだけはやっておく、というのが、以下のコマンドです。

npx fix-react2shell-next

実行の流れ

プロジェクトのルートで実行します。

npx fix-react2shell-next
  • 対話形式で「このバージョンに上げますがいいですか?」と聞かれる
  • OKすれば、package.json / lockファイルが更新される
  • 終わったら git diff で差分確認 → 問題なければコミット

※ すでに next@16.0.8 など、十分新しい&パッチ済みのバージョンを使っている場合は、
「特に変更なし」で終わることもあります。

もう少しだけちゃんと確認するなら

Next.jsのバージョンチェック

npm ls next

ざっくり、

  • Next.js 15 / 16 + App Router + RSC を使っているなら、基本的に対象として見ておいた方が安全です。
  • Next.js 13 や 14安定版のみ、Pages Routerのみのアプリなどは今回のケースでは影響外とされています。

詳細は公式ブログの「Affected and unaffected applications」セクションを参照。
https://nextjs.org/blog/CVE-2025-66478

シークレットのローテーションも検討

Next.js公式は、

2025-12-04 13:00 PT(日本時間だと 2025年12月5日 朝頃)の時点で、
脆弱な状態のままインターネット公開されていたアプリ

については、シークレット(環境変数)のローテーションを強く推奨しています。

  • .env / デプロイ先で設定している各種APIキー
  • DBのユーザー名・パスワード
  • OAuthクライアントシークレット など

必要に応じて、作り直しておくと安心です。

まとめ

  • React Server Components まわりで、CVSS 10.0 の重大なRCE脆弱性が報告された
  • Next.js 15 / 16 + App Router + RSC を使っているなら、基本的に要対応
  • とりあえずやることはシンプルで、npx fix-react2shell-next をプロジェクト直下で実行
  • 差分を確認して依存関係をアップデート
  • 影響期間中に本番公開していたなら、シークレットの更新も検討

深掘りは後回しでも、
まずは「npx fix-react2shell-next を叩いたかどうか」だけは早めにクリアしておくのがよさそうです。

GitHubで編集を提案

Discussion