Thank You For Reaching Out To Us
We have received your message and will get back to you within 24-48 hours. Have a great day!

Next.jsに13件の新たなセキュリティ脆弱性が発見される:セルフホスト型デプロイメントに早急な対応が必要な理由

15分で​​読む

セルフホスティングインフラストラクチャを運用されている皆様にとって、今週も厳しい状況が続いております。2026年5月7日、Vercelはセルフホスティング環境に影響を与える13件の新たな脆弱性を公表するとともに、Next.jsバージョン15.5.18および16.2.6向けの緊急セキュリティパッチをリリースいたしました。中でもCVE-2026-44578はその影響範囲の大きさから、セキュリティコミュニティにおいて深刻な関心を集めております。 

この勧告によると、この脆弱性により、攻撃者はWebSocketのアップグレード処理を悪用して、脆弱なNext.jsサーバー内でサーバーサイドリクエストフォージェリ(SSRF)攻撃を仕掛けることができます。

自己ホスト型のNext.jsアプリケーションを実行している場合は今すぐ対応する必要があります。

状況

Vercelの2026年5月のセキュリティリリースではミドルウェアバイパス、サービス拒否、キャッシュポイズニング、XSS攻撃、および深刻度の高いSSRF脆弱性など、複数のカテゴリにわたる13件のCVEが修正されています。これらは理論上の問題ではなく、サーバーサイドのNext.jsアプリケーションのランタイム動作に影響を与え、そのほとんどは認証なしで悪用できます。

VercelのプラットフォームにNext.jsをデプロイしている場合は既に保護されています。Vercelのエッジインフラストラクチャは脆弱性が公表される前にパッチが適用されています。しかし、自社サーバー、Docker、Kubernetes、またはVPSなど、セルフホスティング環境の場合は修正プログラムを速やかに適用する責任はユーザー自身にあります。

影響を受けるバージョンはNext.js の 15.5.18 (15.x ブランチの場合) および 16.2.6 (16.x ブランチの場合) より前のすべてのリリースです。

出版: Vercel Security Changelog – May 2026

重大な脆弱性:CVE-2026-44578

今回のリリースで最も深刻な問題はWebSocketハンドシェイク処理中に発生するSSRF脆弱性であるCVE-2026-44578です。

動作原理

Next.js はConnection: Upgrade および Upgrade: websocket ヘッダーを含むリクエストを処理する際に、X-Forwarded-Host ヘッダーの検証を誤って行います。攻撃者は次のようなリクエストを作成できます。

  1. GET /api/public HTTP/1.1
  2. ホスト: victim-app.com
  3. 接続: アップグレード
  4. アップグレード: WebSocket
  5. X-Forwarded-Host: http://169.254.169.254/latest/meta-data/

サーバーにパッチが適用されていない場合、Next.js はサーバー自身のネットワークコンテキストを使用して、X-Forwarded-Host で指定されたアドレスにリクエストをプロキシします。つまり、外部の攻撃者が、サーバーが本来公開すべきではない内部リソースを取得できてしまう可能性があるということです。

なぜこれが重要なのか

差し迫ったリスクはクラウドメタデータエンドポイントへのアクセスです。

  • AWS IMDSv1: http://169.254.169.254/latest/meta-data/
  • GCPメタデータ:http://metadata.google.internal/computeMetadata/v1/
  • Azure IMDS: http://169.254.169.254/metadata/instance

これらのエンドポイントは多くの場合、IAM認証情報、サービスアカウントトークン、またはインスタンス構成データを返します。これらを利用することで、攻撃者は横方向への移動、権限昇格、またはデータの持ち出しを行うことができます。セキュリティ研究者によると、現在、約79,000の自己ホスト型Next.jsインスタンスがパブリックインターネットに公開されていると推定されています。これらのインスタンスのいずれかを運用していて、パッチを適用していない場合、脆弱性が存在する可能性が高いです。

影響を受ける対象

以下のような場合はリスクがあります:

  • Next.jsをサーバーモード(SSR、APIルート、ミドルウェア)で独自のインフラストラクチャ上で実行します。
  • お使いのNext.jsのバージョンは15.5.18または16.2.6未満です。
  • アプリケーションは外部からのHTTPトラフィックを(直接またはロードバランサー経由で)受け入れます。

次のような場合はおそらく安全です。

  • Vercel(エッジパッチ適用済み)上でホストしています。
  • 次のエクスポートを使用して、完全に静的なサイトを生成します。
  • Next.jsインスタンスはインターネットからアクセスできず、厳格な送信制御が設定されています。

注記:認証にミドルウェアを使用しても、これらの脆弱性は軽減されません。修正済みのCVEのいくつかはミドルウェアのロジックを意図的に回避するものです。

バージョンを確認する方法

プロジェクトディレクトリで、以下のいずれかのコマンドを実行してください。

インストールされているバージョンを確認してください。メジャーバージョンに応じて、15.5.18または16.2.6より低い場合はアップグレードする必要があります。package.json も確認してください。キャレットまたはチルダの範囲指定 (^15.5.0 または ~16.2.0) を使用している場合はロックファイルが実際にパッチ適用済みのバージョンに解決されることを確認してください。憶測で判断せず、node_modules/next/package.json を確認してください。

すぐに取るべき行動

チームがNext.jsをセルフホストしている場合はパッチ適用を緊急事項として扱う必要があります。

1. Next.jsを直ちに更新する 

アップグレード先:

  • Next.js 15.5.18
  • Next.js 16.2.6
  • またはより新しいパッチ適用済みのリリース

あなたのアプリケーションがインターネットに公開されるものであれば、この手続きを遅らせてはいけません。

2. 内部メタデータエンド ポイントを内部的にブロックする

パッチ適用後であっても、クラウドメタデータサービスは絶対に必要な場合を除き、アプリケーションコンテナから直接アクセス可能な状態にすべきではありません。

アクセスを制限する:

  • 169.254.169.254
  • AWS IMDSv1
  • GCPメタデータエンドポイント
  • Azure IMDS

AWSユーザーはIMDSv1を完全に無効にして、IMDSv2を強制的に使用する必要があります。

3. リバースプロキシ規則を確認する

以下の設定をご確認ください: 

  • Nginxの設定
  • Traefikの設定
  • ロードバランサー
  • WebSocket転送ルール

アップグレードヘッダーの設定ミスは場合によってはリスクを高める可能性があります。

4. 不審な内部要求を監視する

以下のような異常な交通パターンを探してください。

  • メタデータIPアドレス
  • 内部RFC1918範囲
  • 予期しない送信リクエスト
  • WebSocketアップグレードの異常

これは公共トラフィックを処理するプロダクションクラスターにとって特に重要です。

5. 環境シークレットを監査する 

脆弱性がある状態でインスタンスが公開された可能性がある場合:

  • クラウド認証情報をローテーションする
  • APIキーをローテーションする
  • IAMアクティビティを確認する
  • 監査ログで異常なアクセスを確認してください

攻撃が失敗した場合、痕跡が残らないと思い込んではいけません。

なぜこの問題が繰り返されるのか

Next.jsは急速に進化しています。ミドルウェア、サーバーアクション、WebSocketプロキシ、React Server Componentsといった機能は機能性を拡張する一方で、攻撃対象領域も拡大します。セルフホスティングの場合、セキュリティアップデートの追跡と適用に関する責任はユーザー自身に帰属します。

規律あるパッチ適用ワークフローに勝るものはありません。Vercelのセキュリティアドバイザリを購読してください。Next.jsのGitHubリポジトリでセキュリティタグを監視してください。主要なフレームワークのアップデートは単なる機能リリースではなく、潜在的なセキュリティイベントとして扱ってください。

より大きな問題:利便性とインフラ所有権のバランス

今回の出来事は多くのチームがいずれ直面することになる、ある不都合な現実を浮き彫りにしている:

「セルフホスティングならコストを抑えられる」と言われますが、実際には、インフラの維持管理そのものがセキュリティ上の大きな課題になるケースもあります。

Next.jsのようなフレームワークは非常に速いスピードで進化しています。このスピードは開発者の体験を向上させる一方で、セルフホスト型のデプロイメントでは運用上の負担が増大するという側面もあります。

  • セキュリティパッチ適用
  • 実行時強化
  • リバースプロキシのメンテナンス
  • 依存関係管理
  • インフラストラクチャ監視

専用のDevSecOpsワークフローを持たない小規模チームでは重要なパッチを見落としてしまう可能性が高くなります。

重要なインフラストラクチャを管理していて、監査、パッチ適用、セキュリティ強化をすぐに行うためのリソースが不足している場合はサポートの導入をご検討ください。

Haposoftは以下のように支援できます。

  • 既知のCVEへの脆弱性についてNext.jsのデプロイメントを監査する
  • ダウンタイムゼロの戦略で緊急パッチを適用する
  • SSRF攻撃、メタデータ漏洩、認証バイパスに対するクラウドインフラストラクチャのセキュリティを強化する
  • 長期的な回復力を確保するための自動化されたセキュリティワークフローを確立する

ご不明な点やご質問がございましたら、お問い合わせページからご連絡いただくか、下記のコメント欄にご記入ください。緊急のセキュリティ問題には迅速に対応いたします。

最後に

現代のフレームワークは単なるフロントエンドツールではなく、アプリケーションプラットフォームとしての機能を果たすようになってきています。それはセキュリティに対する期待を劇的に変えます。マネージドプラットフォーム以外でNext.jsを本番環境で実行している場合、パッチ管理とインフラストラクチャの強化はもはやオプションのメンテナンス作業として扱うことはできません。これらはアプリケーションのライフサイクルそのものの一部となります。

 

cta-background

ニュースレター登録

デジタルトランスフォーメーションに​関する​専門的な​知見や​イベント最新情報を、​メールボックスに​直接お届けします。
© Haposoft 2025. All rights reserved