Next.js 自己ホスト利用者は要注意! WebSocket悪用によるSSRF脆弱性 (CVE-2026-44578) への対応
はじめに:Next.jsの重要なセキュリティ更新
フロントエンドエンジニアの皆さん、こんにちは!今回はNext.jsの自己ホスト環境で発見された、非常に重要なセキュリティ脆弱性「CVE-2026-44578」(GHSA-c4j6-fc7j-m34r)について解説します。深刻度「High」と評価されており、Next.jsを自己ホストで運用されている方にとっては特に注意が必要です。Vercelでホストされているアプリケーションは影響を受けませんのでご安心ください。
脆弱性の概要:SSRFとは何か?なぜ危険なのか?
この脆弱性は「Server-Side Request Forgery (SSRF)」と呼ばれ、サーバーサイドのリクエスト偽造と訳されます。通常、サーバーは自身がアクセスを許可されたリソースにのみアクセスできますが、SSRF脆弱性があると、攻撃者がそのサーバーを操り、本来アクセスできないはずの内部システムや、認証情報を含む可能性のあるクラウドプロバイダーのメタデータエンドポイントなど、任意のURLにリクエストを送信させることが可能になります。
今回のNext.jsのケースでは、巧妙に細工されたWebSocketアップグレードリクエストが悪用されます。攻撃者はこのリクエストをNext.jsサーバーに送りつけることで、Next.jsサーバーが攻撃者の指定した内部または外部の宛先にリクエストをプロキシ(代理送信)してしまいます。これにより、企業の内部ネットワーク情報や、クラウドサービスの設定情報、さらには認証情報までが漏洩してしまう危険性があります。
影響を受ける対象と、影響を受けない対象
この脆弱性の影響を受けるのは、Next.jsアプリケーションを自己ホスト型で運用しているユーザーです。具体的には、自社のサーバー、IaaS(AWS EC2, GCP Compute Engineなど)やPaaS(Heroku, Renderなど)の仮想マシン上でNode.jsサーバーとしてNext.jsを直接動かしている場合が該当します。
一方、Next.jsを開発しているVercelのプラットフォーム上でデプロイされているアプリケーションは、Vercel側で適切な対策が施されているため、この脆弱性の影響を一切受けません。Vercelユーザーの皆さんはご安心ください。
いますぐ取るべき修正策
最も推奨される対策は、Next.jsを最新バージョンにアップデートすることです。最新バージョンでは、WebSocketアップグレード処理に対しても通常のHTTPリクエストと同様の厳格な安全チェックが適用されます。これにより、ルーティング設定で明示的に安全な外部リライトとして許可されている場合を除き、アップグレードリクエストのプロキシがブロックされるようになります。
セキュリティアップデートは、機能追加のアップデートよりも優先して適用することを強くお勧めします。
緊急時の回避策(すぐにアップデートできない場合)
やむを得ない事情で直ちにNext.jsのアップデートが難しい場合は、以下の回避策を検討してください。ただし、これらは一時的な対応であり、最終的にはアップデートを実施することが最も重要です。
Next.jsアプリケーションが稼働しているオリジンサーバーを、信頼できない外部ネットワークに直接公開しないようにしてください。リバースプロキシ(Nginx, Apacheなど)やCDN/WAFなどを間に挟み、それらで不審なリクエストをフィルタリングする層を設けることを検討しましょう。
もしあなたのNext.jsアプリケーションでWebSocketアップグレード機能(例:リアルタイム通信)を全く利用していないのであれば、リバースプロキシやロードバランサーの段階でWebSocketアップグレードリクエスト(`Upgrade: websocket` ヘッダーを持つリクエスト)をブロックすることで、脆弱性の悪用を防ぐことができます。
オリジンサーバーからの外部ネットワークへのアクセス(エグレス通信)を、可能な限り最小限に制限してください。ファイアウォールルールやセキュリティグループを設定し、必要な内部ネットワークやホワイトリストに登録されたサービスエンドポイントへの通信のみを許可するように厳しく制御することで、万一SSRFが実行された場合でも被害を最小限に抑えることができます。
まとめ
今回のNext.jsのSSRF脆弱性は、自己ホストでNext.jsを利用している企業にとって、機密情報漏洩に直結する可能性のある非常に危険なものです。フロントエンドエンジニアの皆さんも、利用しているフレームワークのセキュリティ情報には常にアンテナを張り、迅速な対応を心がけることが重要です。
繰り返しになりますが、Vercelをご利用の場合は影響ありません。自己ホストでNext.jsをご利用の方は、速やかに最新バージョンへのアップデートを実施し、安全なアプリケーション運用を心がけましょう。