Next.jsにキャッシュポイズニング脆弱性(CVE-2025-49826)

セキュリティニュース

投稿日時: 更新日時:

Next.jsにキャッシュポイズニング脆弱性(CVE-2025-49826)

2025年7月、Reactベースの人気フレームワーク「Next.js」に、キャッシュポイズニングによるサービス拒否(DoS)を引き起こす脆弱性(CVE-2025-49826)が報告されました。

この脆弱性は、Next.jsのバージョン15.1.0から15.1.7までに影響があり、特定の条件下でHTTP 204レスポンスが誤ってキャッシュされ、静的ページがすべてのユーザーに204として返却される可能性があります。

脆弱性の内容と影響

この問題は、Next.jsのIncremental Static Regeneration(ISR)機能におけるキャッシュ再検証ロジックの不備が原因です。

以下の条件を満たすと、意図しない204 No Contentレスポンスがキャッシュされ、サイト訪問者全員に空のページが提供されてしまうというDoS状態が発生します。

  • 影響を受けるバージョン(15.1.0〜15.1.7)を使用している
  • ISRを使用しており、next start またはスタンドアロンモードで動作している
  • SSR(サーバーサイドレンダリング)を利用し、204レスポンスをキャッシュする設定のCDNを使用している

CVSS v3のスコアは 7.5(高) であり、可用性への深刻な影響が懸念されます。

修正内容と対応策

Next.jsチームはこの脆弱性を バージョン15.2.0 にて修正し、また過去のバージョンに対しても 15.0.4 にバックポートを実施しています。修正内容は以下の通りです:

  • 204レスポンスを設定するコードパスを削除
  • キャッシュ処理における共有レスポンスオブジェクトの使用を廃止し、レースコンディションを解消

対象ユーザーへの推奨事項

  • 自社ホスティングやオンプレミスでNext.js 15.1.0〜15.1.7を使用している場合、直ちに15.2.0以降へアップデートしてください。
  • 旧バージョンを使用中の場合は、15.0.4以下であることを確認してください。
  • CDNの設定を見直し、204レスポンスのキャッシュを禁止するようにしてください。

なお、Vercel上でホストされているユーザーはこの問題の影響を受けないと公式に発表されています。

 

参照

https://vercel.com/changelog/cve-2025-49826