Nuxt の脆弱性 CVE-2025-27415 が FIX:CDN ポイズニングによる DoS 攻撃の可能性

Nuxt Users Beware: CVE-2025-27415 Opens the Door to Cache Poisoning Attacks

2025/03/24 SecurityOnline — 人気の Nuxt フレームワークで発見された脆弱性により、攻撃者に対して CDN キャッシュ・ポイズニングを許し、フルスタックの Vue.js アプリケーションへのアクセスが妨害される可能性が生じている。この Nuxt の脆弱性 CVE-2025-27415 (CVSS:7.5) は、バージョン 3.0.0〜3.16.0 未満に影響を及ぼす。

この問題は、Nuxt が特定の HTTP リクエストを処理する方法に存在する。具体的に言うと、https://yoursite.com/?/_payload.json のようなリクエストの場合に、問題が発生する。

Nuxt のアドバイザリには、「細工された HTTP リクエストを、CDN の背後にあるサーバに送信すると、状況によっては CDN キャッシュがポイズニングされ、サイトの可用性に大きな影響を引きこす可能性がある」と記されている。

CDN がコンテンツをキャッシュする際に、このようなクエリ文字列を無視すると、そのペイロード・ルートからの JSON レスポンスがキャッシュされる。それが、すべてのユーザーに配信されことで、サイトの停止/破損にいたる可能性が生じる。

この脆弱性により、キャッシュ・ポイズニングによるサービス拒否 (DoS) 攻撃が可能になる。つまり、キャッシュを繰り返してポイズニングする攻撃者は、標的 Web サイトを壊れた状態に維持できるようになる。

Nuxt のアドバイザリには、「キャッシュがリセットされるケースにおいて、X 秒 (= キャッシュ期間) ごとにリクエストを送信する小さなスクリプトを作成すると、キャッシュが永続的にポイズニングされ、サイトが完全に利用できなくなる可能性も生じる」と記されている。

影響を受けるバージョンと、パッチ適用済みバージョン
  • 影響を受けるバージョン:Nuxt バージョン >3.0.0 および <3.16.0
  • パッチ適用済み:Nuxt v3.16.0

興味深いことに、URL パラメータとページ・プロパティに関連する、以前の Next.js の脆弱性 CVE-2024-46982 と、今回の脆弱性は似ている。

毎月 340 万回以上もダウンロードされている Nuxt は、パフォーマンスの高いフルスタック Vue.js アプリケーションに最適なフレームワークである。その一方で、人気の高さを狙う脅威アクターたちの、主要なターゲットにもなっている。

複数のフレームワークで作業する開発者にとって重要なことは、スタックには関係なく、URL 操作とキャッシュ・ロジックを、慎重に確認する必要性である。

このブログでは初登場の Nuxt ですが、Wikipedia では「Vue.js/Nitro/Vite をベースとした、無料かつオープンソースの JavaScript ライブラリである。Nuxt は、Vue ではなく React をベースとした類似のフレームワークである、Next.js にインスパイアされたものである」と紹介されています。なお、文中で触れられている Next.js の脆弱性 CVE-2024-46982 に関しては、2024/09/18 の「Next.js の脆弱性 CVE-2024-46982 が FIX:キャッシュ・ポイズニング攻撃の可能性」という記事を投稿しています。よろしければ、JavaScript Library で検索と併せて、ご利用ください。