更新:

Next.jsに認証をバイパスできる脆弱性 直ちにアップデートを

サムネイル
画像:GitHub Advisory Database

人気なReactフレームワークのNext.jsに、認証チェックをバイパスできる脆弱性が見つかりました。

今回発見された脆弱性(CVE-2025-29927 / GHSA-f82v-jwr5-mffw)は、Next.jsのミドルウェアで認証を処理している場合に、ミドルウェアをバイパスすることで認証を回避できるというものです。

攻撃者はリクエストにx-middleware-subrequestヘッダーを含めることで、ミドルウェアによる認証を迂回して、本来アクセスできないコンテンツにアクセスできる可能性があります。

CVE-2025-29927の深刻度は「Critical(緊急)」に分類されており、CVSSスコアは9.1となっています。

この脆弱性の悪用には、特別な権限やユーザーの操作が不要で複雑性も低いため、攻撃リスクが非常に高いといえます。

影響を受けるバージョンは次のとおりです。

CVE-2025-29927は、Next.js v14.2.25とv15.2.3で修正されています。

Next.js v13以下のバージョンにはパッチが提供されないため、v14.2.25以降またはv15.2.3以降へアップデートする必要があります。

何らかの理由でアップデートが難しい場合は、外部ユーザーからのx-middleware-subrequestヘッダーを含むリクエストを遮断することで、リスクを軽減できます。

また、Cloudflareは今回の脆弱性に対してWeb Application Firewall(WAF)の展開を予定しているとのことです。

正式な展開を待たずとも、どのプランでもCloudflareダッシュボードの[セキュリティ]>[WAF]>[ルールを作成]から手動でWAFを設定できます。

手動で設定する場合は、次の値を設定してください。

また、WAFルールの式は次のとおりです。

(len(http.request.headers["x-middleware-subrequest"]) > 0)
CloudflareのWAFルールの設定画面のスクリーンショット
CVE-2025-29927を緩和するWAFルールの例

なお、NetlifyでNext.jsを使っている場合は、この脆弱性の影響を受けないとのことです。

この脆弱性は、zhero;氏とinzo氏によって発見されました。

Next.jsでミドルウェアによる認証チェックを利用したアプリケーションを開発している場合は、直ちにアップデートするかWAFを設定することが推奨されます。

Vercelの対応に疑問の声も(3月23日10時17分追記)

Vercelは当初、今回の脆弱性を発表する記事のタイトルを「Vercel Firewall proactively protects against vulnerability with Middleware」(Vercelのファイアウォールはミドルウェアの脆弱性から積極的に保護します)としており、記事本文でも「Vercel customers are proactively protected by our Firewall」(Vercelのファイアウォールによって、顧客は積極的に保護されています)と記載していました。

現在は修正されていますが、脆弱性の開示というよりはまるで自社サービスの宣伝のようになっていたことで、一部のユーザーからは疑問の声が上がっています。

Googleの検索結果のスクリーンショット
現在は記事が修正されているが、Googleのキャッシュでは当初のタイトルが確認できる

修正後の記事では「Vercel customers are not affected」(Vercelの顧客は影響を受けません)と記載されています。

しかし、Netlifyのように最初から影響を受けていなかったのか、それともファイアウォールによって保護されたため現在は影響を受けていない(ファイアウォールの展開までは影響を受けていた)という意味なのかは不明です。

脆弱性の開示までVercelチームが報告を受けてから23日修正がコミットされてから5日も経っていましたが、開示までほかのプロバイダーと情報を共有しておらず、自社の顧客のみを保護していたことから、とくにホスティングプロバイダーの「中の人」を中心に批判の声が上がっています。

参考リンク

更新履歴

#JavaScript#TypeScript#Web開発#オープンソース#セキュリティ#ニュース#プログラミング

記事をシェアする

おすすめアイテム

※このリンクを経由して商品を購入すると、当サイトの運営者が報酬を得ることがあります。詳細はこちら

このサイトを支援する

Buy Me a CoffeeまたはGitHub Sponsorsで支援していただけると、サイトの運営やコンテンツ制作の励みになります。定期的な支援と一度限りの支援がありますので、お間違いのないようにお願いします。

Buy me a coffee

著者のアイコン画像

生まれた時から、母国語よりも先にJavaScriptを使っていました。ネットの海のどこにもいなくてどこにでもいます。

Webフロントエンドプログラマーで、テクノロジーに関する話題を追いかけています。動画編集やプログラミングが趣味で、たまにデザインなどもやっています。主にTypeScriptを使用したWebフロントエンド開発を専門とし、便利で実用的なブラウザー拡張機能を作成しています。また、個人ブログを通じて、IT関連のニュースやハウツー、技術的なプログラミング情報を発信しています。