<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Next.js on KnightLiブログ</title>
        <link>https://www.knightli.com/ja/tags/next.js/</link>
        <description>Recent content in Next.js on KnightLiブログ</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>ja</language>
        <lastBuildDate>Sun, 17 May 2026 23:07:38 +0800</lastBuildDate><atom:link href="https://www.knightli.com/ja/tags/next.js/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Vercel AI SDK とは？TypeScript 開発者が AI アプリを構築するための統一ツールキット</title>
        <link>https://www.knightli.com/ja/2026/05/17/vercel-ai-sdk-typescript-agent-toolkit/</link>
        <pubDate>Sun, 17 May 2026 23:07:38 +0800</pubDate>
        
        <guid>https://www.knightli.com/ja/2026/05/17/vercel-ai-sdk-typescript-agent-toolkit/</guid>
        <description>&lt;p&gt;&lt;code&gt;vercel/ai&lt;/code&gt; は、Vercel がメンテナンスしているオープンソースの AI SDK です。&lt;/p&gt;
&lt;p&gt;位置づけは明確です。TypeScript 開発者が AI アプリケーションや AI Agent を構築するための統一ツールを提供します。Next.js の背後にいるチームから生まれたものですが、Next.js 専用ではありません。React、Svelte、Vue、Angular などの UI フレームワークや、Node.js などのランタイムにも対応しています。&lt;/p&gt;
&lt;p&gt;プロジェクト URL：&lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;https://github.com/vercel/ai&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;チャットアプリ、AI ライティングツール、RAG アプリ、ツール呼び出しを伴う Agent、ストリーミング出力 UI、複数のモデルプロバイダーをひとつのアプリに接続したいプロダクトを作っているなら、Vercel AI SDK は注目に値する基盤ライブラリです。&lt;/p&gt;
&lt;h2 id=&#34;解決しようとしている中心課題&#34;&gt;解決しようとしている中心課題
&lt;/h2&gt;&lt;p&gt;現在 AI アプリを作るとき、最大の悩みの一つは「モデルを呼べるか」ではありません。モデルプロバイダーごとに API、ストリーミング出力、ツール呼び出し、エラー処理、フロントエンドの状態管理が違うことです。&lt;/p&gt;
&lt;p&gt;たとえば：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI には独自の SDK とレスポンス形式があります。&lt;/li&gt;
&lt;li&gt;Anthropic には独自のメッセージ構造があります。&lt;/li&gt;
&lt;li&gt;Google、xAI、Mistral、DeepSeek、Groq などもそれぞれ異なります。&lt;/li&gt;
&lt;li&gt;ストリーミング出力では chunk の処理が必要です。&lt;/li&gt;
&lt;li&gt;ツール呼び出しでは、モデルが発行する構造化リクエストを処理します。&lt;/li&gt;
&lt;li&gt;チャット UI では、メッセージ、読み込み状態、キャンセル、再試行、エラー表示も管理する必要があります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;プロバイダーごとに手書きのアダプターを作ると、プロジェクトはすぐに複雑になります。&lt;/p&gt;
&lt;p&gt;Vercel AI SDK の考え方は、こうした差異を統一 API の背後に収めることです。開発者はひとつのインターフェースでアプリを書き、Provider を通じて異なるモデルへ接続します。&lt;/p&gt;
&lt;h2 id=&#34;統一-provider-アーキテクチャ&#34;&gt;統一 Provider アーキテクチャ
&lt;/h2&gt;&lt;p&gt;Vercel AI SDK の重要な特徴の一つは provider-agnostic、つまり特定のモデルベンダーに縛られないことです。&lt;/p&gt;
&lt;p&gt;統一 API を通じて OpenAI、Anthropic、Google などのモデルプロバイダーにアクセスできます。プロジェクト README では、デフォルトで AI SDK が Vercel AI Gateway を使い、複数の主要 provider へアクセスしやすくすると説明されています。&lt;/p&gt;
&lt;p&gt;これは実際の開発で役に立ちます。&lt;/p&gt;
&lt;p&gt;多くの AI プロダクトは、最終的に一つのモデルだけには依存しません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;強い推論モデルが向くタスクがあります。&lt;/li&gt;
&lt;li&gt;安価で高速なモデルが向くタスクがあります。&lt;/li&gt;
&lt;li&gt;マルチモーダルが必要なタスクがあります。&lt;/li&gt;
&lt;li&gt;長いコンテキストが必要なタスクがあります。&lt;/li&gt;
&lt;li&gt;ローカルまたはプライベートなモデル展開が必要なタスクがあります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;統一 Provider アーキテクチャにより、モデル切り替え、段階的リリース、コスト制御、フォールバック戦略を作りやすくなります。&lt;/p&gt;
&lt;h2 id=&#34;ストリーミング出力はフロントエンド体験の鍵&#34;&gt;ストリーミング出力はフロントエンド体験の鍵
&lt;/h2&gt;&lt;p&gt;AI アプリと従来の API の大きな体験差の一つは、レスポンスが長くなりやすいことです。&lt;/p&gt;
&lt;p&gt;ユーザーが完全な回答を待たなければならないと、チャットツール、ライティングツール、コードアシスタントは遅く感じられます。ストリーミング出力なら、テキストが少しずつ表示され、ユーザーは早く結果を確認できます。&lt;/p&gt;
&lt;p&gt;Vercel AI SDK はストリーミング生成を比較的しっかり抽象化しています。開発者は低レベルのイベントストリームをゼロから処理する必要がなく、SDK の生成 API とストリーミング API を使ってモデル出力をフロントエンド UI に接続できます。&lt;/p&gt;
&lt;p&gt;Next.js / React アプリでは特に便利です。&lt;/p&gt;
&lt;p&gt;AI チャット UI は一見シンプルですが、実際には次のような処理が必要です。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;メッセージ一覧。&lt;/li&gt;
&lt;li&gt;ユーザー入力。&lt;/li&gt;
&lt;li&gt;サーバーリクエスト。&lt;/li&gt;
&lt;li&gt;ストリーミング token 表示。&lt;/li&gt;
&lt;li&gt;読み込み状態。&lt;/li&gt;
&lt;li&gt;エラー状態。&lt;/li&gt;
&lt;li&gt;生成の中止。&lt;/li&gt;
&lt;li&gt;再生成。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;これらは AI SDK が開発者の反復作業を減らそうとしている領域です。&lt;/p&gt;
&lt;h2 id=&#34;ツール呼び出しと-agent-シナリオ&#34;&gt;ツール呼び出しと Agent シナリオ
&lt;/h2&gt;&lt;p&gt;AI アプリが「会話」から「実行」へ進むにつれて、ツール呼び出しは重要になります。&lt;/p&gt;
&lt;p&gt;モデルは自然言語を返すだけでなく、外部関数を呼ぶ必要があるかもしれません。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;データベースを検索する。&lt;/li&gt;
&lt;li&gt;ドキュメントを検索する。&lt;/li&gt;
&lt;li&gt;業務 API を呼ぶ。&lt;/li&gt;
&lt;li&gt;注文状態を読む。&lt;/li&gt;
&lt;li&gt;グラフを生成する。&lt;/li&gt;
&lt;li&gt;カレンダー予定を作成する。&lt;/li&gt;
&lt;li&gt;プロジェクトファイルを変更する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vercel AI SDK はツール呼び出し関連の機能を提供し、開発者がツール、パラメータ、実行ロジックを定義し、モデルが適切なタイミングで呼び出しを要求できるようにします。&lt;/p&gt;
&lt;p&gt;これが「チャット UI SDK」から「AI アプリと Agent のツールキット」へ広がっている理由の一つです。&lt;/p&gt;
&lt;p&gt;ただし、ツール呼び出しを追加すれば終わりではありません。実際のプロジェクトでは次も考える必要があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;パラメータ検証。&lt;/li&gt;
&lt;li&gt;権限境界。&lt;/li&gt;
&lt;li&gt;ツール呼び出しログ。&lt;/li&gt;
&lt;li&gt;冪等性。&lt;/li&gt;
&lt;li&gt;タイムアウトと再試行。&lt;/li&gt;
&lt;li&gt;人間による確認。&lt;/li&gt;
&lt;li&gt;センシティブ操作の制限。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI SDK はインターフェースと流れを助けますが、安全境界は開発者が設計する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;ui-統合&#34;&gt;UI 統合
&lt;/h2&gt;&lt;p&gt;Vercel AI SDK はフロントエンドフレームワークと相性がよい SDK です。&lt;/p&gt;
&lt;p&gt;コアの生成 API だけでなく、チャット、補完、メッセージ状態、ストリーミング UI の抽象化も提供しています。Next.js と React を使うチームにとっては、多くのボイラープレートを減らせます。&lt;/p&gt;
&lt;p&gt;ただし、Vercel へのデプロイ専用ではありません。&lt;/p&gt;
&lt;p&gt;プロジェクトが TypeScript 技術スタックで構成されている場合、またはバックエンドが Node.js 環境で動いている場合、AI SDK はモデル呼び出しとストリーミング処理の層として使えます。Vercel にデプロイするかどうかは、アプリの構成、チームの習慣、インフラ選択によります。&lt;/p&gt;
&lt;h2 id=&#34;skill-for-coding-agents&#34;&gt;Skill for Coding Agents
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;vercel/ai&lt;/code&gt; の README には興味深い提案もあります。Claude Code や Cursor などの coding agent を使っている場合、AI SDK skill をリポジトリに追加できます。&lt;/p&gt;
&lt;p&gt;例のコマンドは次のとおりです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npx skills add vercel/ai
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは、Vercel が AI SDK の利用者を人間の開発者だけでなく coding agent も含めて考えていることを示しています。&lt;/p&gt;
&lt;p&gt;agent が AI SDK を使うプロジェクトを変更する場合、リポジトリ内に専用 skill があると、SDK の約束事、よく使う API、プロジェクト構造、ベストプラクティスをより理解しやすくなり、雑なコード変更を減らせます。&lt;/p&gt;
&lt;p&gt;この方向性は注目に値します。&lt;/p&gt;
&lt;p&gt;将来、オープンソースプロジェクトは README や docs だけでなく、AI coding agent 向けの構造化された skill 説明も提供するようになるかもしれません。複雑な SDK では、それが新しい開発者体験の入口になる可能性があります。&lt;/p&gt;
&lt;h2 id=&#34;向いているプロジェクト&#34;&gt;向いているプロジェクト
&lt;/h2&gt;&lt;p&gt;Vercel AI SDK は次のような場面に向いています。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Next.js / React ベースの AI チャットアプリ。&lt;/li&gt;
&lt;li&gt;ストリーミング出力が必要なライティング、Q&amp;amp;A、サポート、コードアシスタント。&lt;/li&gt;
&lt;li&gt;複数の model provider を接続する AI プロダクト。&lt;/li&gt;
&lt;li&gt;RAG やドキュメント Q&amp;amp;A のプロトタイプを素早く作りたいチーム。&lt;/li&gt;
&lt;li&gt;ツール呼び出し、関数呼び出し、軽量 Agent 機能が必要なアプリ。&lt;/li&gt;
&lt;li&gt;TypeScript / Node.js 技術スタックを使っているチーム。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;特にフロントエンド開発者とフルスタック開発者に向いています。多くの AI アプリで難しいのはモデル呼び出しだけではなく、モデル出力を安定し、滑らかで、対話的なプロダクト体験にすることだからです。&lt;/p&gt;
&lt;h2 id=&#34;向いていない場面&#34;&gt;向いていない場面
&lt;/h2&gt;&lt;p&gt;プロジェクトの中心が Python バックエンド、深層学習の訓練、モデル微調整、低レベル推論サービスである場合、Vercel AI SDK は中心的なツールではないかもしれません。&lt;/p&gt;
&lt;p&gt;これはアプリケーション層の SDK であり、モデル訓練フレームワークではありません。&lt;/p&gt;
&lt;p&gt;必要なものが次のような場合は：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;独自モデルを訓練する。&lt;/li&gt;
&lt;li&gt;GPU 推論クラスターを管理する。&lt;/li&gt;
&lt;li&gt;低レベルの batch inference を行う。&lt;/li&gt;
&lt;li&gt;tokenizer、KV cache、量子化、推論エンジンを深く制御する。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;PyTorch、vLLM、SGLang、TensorRT-LLM、llama.cpp、またはクラウド推論サービスを見るほうがよいでしょう。&lt;/p&gt;
&lt;p&gt;Vercel AI SDK は「モデル能力をプロダクトへ接続する」ためのアプリケーション開発層に近い存在です。&lt;/p&gt;
&lt;h2 id=&#34;使うときの注意点&#34;&gt;使うときの注意点
&lt;/h2&gt;&lt;p&gt;第一に、統一 API を「完全に差異がない」と理解しないことです。&lt;/p&gt;
&lt;p&gt;モデル provider ごとに、能力、コンテキスト長、ツール呼び出し形式、ストリーミングの細部、エラー型、課金方式は依然として異なります。統一 SDK は開発上の摩擦を減らしますが、モデル差を消すわけではありません。&lt;/p&gt;
&lt;p&gt;第二に、コストを制御することです。&lt;/p&gt;
&lt;p&gt;AI アプリが本番に出ると、ストリーミングチャット、再試行、ツール呼び出し、RAG 検索、複数モデルの fallback はすべて呼び出しコストを増やす可能性があります。レート制限、キャッシュ、ログ、予算監視が必要です。&lt;/p&gt;
&lt;p&gt;第三に、安全境界を扱うことです。&lt;/p&gt;
&lt;p&gt;モデルがツールを呼べるなら、そのツールが何をできるかを制限する必要があります。高リスク操作をモデルに直接実行させたり、秘密情報、データベース書き込み権限、本番操作をそのまま露出させたりしてはいけません。&lt;/p&gt;
&lt;p&gt;第四に、可観測性を残すことです。&lt;/p&gt;
&lt;p&gt;AI アプリで問題が起きたとき、フロントエンドのエラーだけでは足りません。ユーザー入力、選択されたモデル、ツール呼び出し、応答時間、token 消費、エラー種別、最終出力を把握する必要があります。&lt;/p&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;&lt;code&gt;vercel/ai&lt;/code&gt; は新しいモデルではなく、単なるチャットコンポーネントでもありません。&lt;/p&gt;
&lt;p&gt;TypeScript AI アプリ開発のための基盤に近いものです。統一 Provider、ストリーミング出力、ツール呼び出し、フロントエンド状態管理、agent シナリオが一つのオープンソース SDK にまとまっています。&lt;/p&gt;
&lt;p&gt;Next.js、React、TypeScript、Node.js をすでに使っているチームにとっては、「モデル API が動く」状態から「プロダクト体験として使える」状態までの開発コストを大きく下げられます。&lt;/p&gt;
&lt;p&gt;ただし万能ではありません。モデル選択、権限設計、コスト制御、ログ監視、業務上の安全性は、依然として開発者が責任を持つ領域です。&lt;/p&gt;
&lt;p&gt;モデルを訓練するのではなく AI アプリを作りたいなら、Vercel AI SDK は早めに試す価値のあるツールキットです。&lt;/p&gt;
&lt;h2 id=&#34;参考資料&#34;&gt;参考資料
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/ai&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;vercel/ai GitHub リポジトリ&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://ai-sdk.dev/docs/introduction&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;AI SDK Documentation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://vercel.com/blog/introducing-the-vercel-ai-sdk/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Vercel: Introducing the Vercel AI SDK&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        <item>
        <title>Next.js の高危険度 SSRF 脆弱性 CVE-2026-44578：影響範囲とアップグレード方針</title>
        <link>https://www.knightli.com/ja/2026/05/17/nextjs-cve-2026-44578-websocket-ssrf/</link>
        <pubDate>Sun, 17 May 2026 17:27:13 +0800</pubDate>
        
        <guid>https://www.knightli.com/ja/2026/05/17/nextjs-cve-2026-44578-websocket-ssrf/</guid>
        <description>&lt;p&gt;Next.js は 2026 年 5 月、高危険度の SSRF 脆弱性 CVE-2026-44578 を公開しました。&lt;/p&gt;
&lt;p&gt;GitHub / Vercel のセキュリティアドバイザリ &lt;code&gt;GHSA-c4j6-fc7j-m34r&lt;/code&gt; と NVD の記録によると、この脆弱性は、内蔵 Node.js server を使い、悪意ある WebSocket upgrade リクエストを受け取れる状態にある自己ホスト型 Next.js アプリケーションに影響します。攻撃者はサーバーに任意の内部または外部宛先へリクエストを代理送信させ、内部サービスやクラウド metadata エンドポイントを露出させる可能性があります。&lt;/p&gt;
&lt;p&gt;Vercel 上でホストされているデプロイは影響を受けません。修正バージョンは &lt;code&gt;15.5.16&lt;/code&gt; と &lt;code&gt;16.2.5&lt;/code&gt; です。&lt;/p&gt;
&lt;h2 id=&#34;先に結論&#34;&gt;先に結論
&lt;/h2&gt;&lt;p&gt;自前サーバー、コンテナ、Kubernetes、ECS、VPS、ベアメタル、または自己管理 PaaS で Next.js を自己ホストしている場合は、優先的に確認してください。&lt;/p&gt;
&lt;p&gt;影響を受ける範囲：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;next &amp;gt;= 13.4.13 &amp;lt; 15.5.16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;next &amp;gt;= 16.0.0 &amp;lt; 16.2.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;影響を受けない、またはリスクが低いケース：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Vercel にデプロイしているアプリケーション。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;15.5.16&lt;/code&gt;、&lt;code&gt;16.2.5&lt;/code&gt;、またはそれ以降へアップグレード済み。&lt;/li&gt;
&lt;li&gt;内蔵 Node.js server を外部に公開していない構成。&lt;/li&gt;
&lt;li&gt;リバースプロキシやロードバランサーで不要な WebSocket upgrade をすでに遮断し、アウトバウンドアクセスも制限している環境。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;推奨対応順：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;本番環境で実際に動いている &lt;code&gt;next&lt;/code&gt; バージョンを確認する。&lt;/li&gt;
&lt;li&gt;自己ホスト型アプリをできるだけ早く修正版へアップグレードする。&lt;/li&gt;
&lt;li&gt;すぐにアップグレードできない場合は、リバースプロキシまたはロードバランサーで不要な WebSocket upgrade を遮断する。&lt;/li&gt;
&lt;li&gt;アプリケーションサーバーからクラウド metadata、内部管理画面、機密性の高い内部サービスへのアクセスを制限する。&lt;/li&gt;
&lt;li&gt;直近の異常な WebSocket upgrade リクエストと内部アクセスログを確認する。&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;脆弱性の内容&#34;&gt;脆弱性の内容
&lt;/h2&gt;&lt;p&gt;CVE-2026-44578 は Server-Side Request Forgery、つまり SSRF の脆弱性です。&lt;/p&gt;
&lt;p&gt;SSRF の本質的なリスクは、攻撃者が内部システムへ直接アクセスするのではなく、あなたのサーバーに代理でリクエストを送らせる点にあります。サーバーは通常、内部ネットワーク、クラウド基盤、内部サービスに近い場所にあるため、代理として使われると、攻撃者が本来アクセスできないリソースに届く可能性があります。&lt;/p&gt;
&lt;p&gt;今回の Next.js の問題は WebSocket upgrade の処理経路にあります。アドバイザリによると、内蔵 Node.js server を使う自己ホスト型アプリケーションでは、細工された WebSocket upgrade リクエストにより、サーバーが任意の内部または外部宛先へ代理アクセスする可能性があります。&lt;/p&gt;
&lt;p&gt;リスクのある対象は次のようなものです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;内部 HTTP サービス。&lt;/li&gt;
&lt;li&gt;管理画面。&lt;/li&gt;
&lt;li&gt;クラウド metadata アドレス。&lt;/li&gt;
&lt;li&gt;コンテナまたはクラスタ内部のサービス。&lt;/li&gt;
&lt;li&gt;サーバーからのみアクセスできる内部 API。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;この脆弱性の CVSS v3.1 スコアは &lt;code&gt;8.6 High&lt;/code&gt; で、ベクトルは次の通りです。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:N/A:N
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;これは、ネットワーク経由で攻撃可能、攻撃複雑度は低く、権限もユーザー操作も不要で、主に機密性に影響することを意味します。&lt;/p&gt;
&lt;h2 id=&#34;自己ホストが危険になりやすい理由&#34;&gt;自己ホストが危険になりやすい理由
&lt;/h2&gt;&lt;p&gt;今回のアドバイザリは、Vercel-hosted deployments are not affected と明記しています。&lt;/p&gt;
&lt;p&gt;重点的に見るべきなのは自己ホスト型デプロイです。理由は単純で、自己ホスト環境のネットワーク構成はさまざまだからです。origin server を直接公開しているものもあれば、Nginx、Traefik、Ingress、Cloudflare、ALB、自前ゲートウェイの背後にあるものもあります。クラウド VM、コンテナネットワーク、Kubernetes クラスタで動く場合もあります。&lt;/p&gt;
&lt;p&gt;これらの環境でアウトバウンドアクセスが制限されていない場合、Next.js プロセスは次のものに到達できる可能性があります。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;169.254.169.254&lt;/code&gt; のようなクラウド metadata アドレス。&lt;/li&gt;
&lt;li&gt;プライベート IP 範囲。&lt;/li&gt;
&lt;li&gt;VPC 内だけで公開されているサービス。&lt;/li&gt;
&lt;li&gt;Redis、Elasticsearch、Prometheus、Grafana などの内部コンポーネント。&lt;/li&gt;
&lt;li&gt;Kubernetes Service、Pod、管理エンドポイント。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;つまり SSRF の危険性は Next.js だけで決まるものではありません。その Next.js サーバーがいるネットワークから何にアクセスできるかで決まります。&lt;/p&gt;
&lt;h2 id=&#34;影響を受けるか確認する方法&#34;&gt;影響を受けるか確認する方法
&lt;/h2&gt;&lt;p&gt;最初に &lt;code&gt;next&lt;/code&gt; のバージョンを確認します。&lt;/p&gt;
&lt;p&gt;プロジェクトディレクトリで実行します。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm ls next
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm why next
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;直接確認することもできます。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat package.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat package-lock.json
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat pnpm-lock.yaml
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cat yarn.lock
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;バージョンが次の範囲に入る場合は対応が必要です。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt;= 13.4.13 &amp;lt; 15.5.16
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;gt;= 16.0.0 &amp;lt; 16.2.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;次に、デプロイ方式を確認します。&lt;/p&gt;
&lt;p&gt;特に注意すべき構成：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;next start&lt;/code&gt; で本番サービスを起動している。&lt;/li&gt;
&lt;li&gt;カスタム Node.js server で Next.js をホストしている。&lt;/li&gt;
&lt;li&gt;Docker イメージ内で Next.js server を直接起動している。&lt;/li&gt;
&lt;li&gt;Kubernetes / ECS / VPS / ベアメタルで自己ホストしている。&lt;/li&gt;
&lt;li&gt;リバースプロキシの背後にある Next.js origin がなお到達可能。&lt;/li&gt;
&lt;li&gt;アプリケーションのネットワークから内部サービスやクラウド metadata にアクセスできる。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;アプリケーションが Vercel にデプロイされている場合、この脆弱性の影響は受けないと公式アドバイザリは述べています。ただし、同じリリース群に他の修正が含まれる可能性があるため、Next.js は常に更新しておくべきです。&lt;/p&gt;
&lt;h2 id=&#34;どのバージョンへ上げるべきか&#34;&gt;どのバージョンへ上げるべきか
&lt;/h2&gt;&lt;p&gt;公式の修正バージョンは次の通りです。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;15.5.16&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;16.2.5&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;アップグレード例：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install next@15.5.16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;16.x を使っている場合：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install next@16.2.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;pnpm：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm add next@15.5.16
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pnpm add next@16.2.5
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;アップグレード後、再ビルドしてリリースします。&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run build
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run start
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;または、CI/CD に沿って Docker イメージを再ビルドし、再デプロイしてください。&lt;/p&gt;
&lt;p&gt;プロジェクトが 14.x または 15.x に固定されている場合、この修正のためだけに慌てて 16.x へメジャーアップグレードする必要はありません。まず &lt;code&gt;15.5.16&lt;/code&gt; の修正ラインへ上げ、テストとリリースを完了し、その後でメジャーバージョン移行を計画するほうが安全です。&lt;/p&gt;
&lt;h2 id=&#34;一時的な緩和策&#34;&gt;一時的な緩和策
&lt;/h2&gt;&lt;p&gt;すぐにアップグレードできない場合、アドバイザリの中心的な方針は次の通りです。origin server を信頼できないネットワークに直接公開しないこと。WebSocket upgrade が不要ならリバースプロキシまたはロードバランサーで遮断すること。そして可能な限り origin のアウトバウンドアクセスを制限することです。&lt;/p&gt;
&lt;p&gt;検討できる緩和策：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Next.js origin server を直接公開しない。&lt;/li&gt;
&lt;li&gt;Nginx、Ingress、ALB、Cloudflare などの入口層で不要な WebSocket upgrade をフィルタする。&lt;/li&gt;
&lt;li&gt;業務で WebSocket を使っていない場合、upgrade セマンティクスを持つリクエストを拒否する。&lt;/li&gt;
&lt;li&gt;アプリケーションサーバーに egress 制限をかけ、クラウド metadata アドレスと機密性の高い内部ネットワークへのアクセスを禁止する。&lt;/li&gt;
&lt;li&gt;クラウド基盤が提供するより安全な metadata アクセス方式、たとえば token 必須の metadata サービスを有効化する。&lt;/li&gt;
&lt;li&gt;管理画面、データベース、キャッシュ、監視システムに認証とネットワーク分離を追加する。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;リバースプロキシ規則は一時的な緩和策であり、アップグレードの代替ではありません。フレームワークの脆弱性は最終的に修正版で解決すべきです。&lt;/p&gt;
&lt;h2 id=&#34;運用上の確認ポイント&#34;&gt;運用上の確認ポイント
&lt;/h2&gt;&lt;p&gt;この脆弱性は主に機密性に影響するため、確認の中心は「内部リソースへのアクセスに使われたか」です。&lt;/p&gt;
&lt;p&gt;確認すべきもの：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Web アクセスログ中の異常な &lt;code&gt;Upgrade&lt;/code&gt;、&lt;code&gt;Connection&lt;/code&gt;、&lt;code&gt;Host&lt;/code&gt;、パス、送信元 IP。&lt;/li&gt;
&lt;li&gt;リバースプロキシまたはロードバランサーの異常な WebSocket upgrade ログ。&lt;/li&gt;
&lt;li&gt;Next.js サービス周辺の異常なアウトバウンド接続。&lt;/li&gt;
&lt;li&gt;クラウド metadata サービスへのアクセスログや認証情報の使用記録。&lt;/li&gt;
&lt;li&gt;内部管理サービス、監視システム、キャッシュ、検索サービスへの異常アクセス。&lt;/li&gt;
&lt;li&gt;IAM 一時認証情報、アクセスキー、token の異常使用。&lt;/li&gt;
&lt;li&gt;コンテナまたはホスト上の不審なプロセス、ダウンロード、横展開の痕跡。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;悪用が疑われる場合：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ログと証跡を保全する。&lt;/li&gt;
&lt;li&gt;露出した可能性のあるクラウド認証情報、API key、データベースパスワード、session secret をローテーションする。&lt;/li&gt;
&lt;li&gt;クラウドアカウントの直近 API 呼び出しを確認する。&lt;/li&gt;
&lt;li&gt;内部サービスのアクセス記録を確認する。&lt;/li&gt;
&lt;li&gt;影響を受けたコンテナまたはホストを再構築する。&lt;/li&gt;
&lt;li&gt;egress 制御と metadata 保護を再確認する。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;reactnextjs-rce-とは別の問題&#34;&gt;React/Next.js RCE とは別の問題
&lt;/h2&gt;&lt;p&gt;混同しやすい点として、CVE-2026-44578 は Next.js WebSocket upgrade SSRF であり、以前の React Server Components 関連 RCE ではありません。&lt;/p&gt;
&lt;p&gt;この問題の中心は、攻撃者が指定した内部または外部アドレスへサーバーにリクエストを送らせることです。主なリスクは情報漏えいと内部リソースの探索です。&lt;/p&gt;
&lt;p&gt;一方、React Server Components 関連の RCE はコード実行リスクであり、影響や修正範囲が異なります。&lt;/p&gt;
&lt;p&gt;そのため「Next.js に脆弱性がある」という大見出しだけで判断せず、具体的な CVE、影響バージョン、デプロイ方式、修正バージョンを対応させる必要があります。&lt;/p&gt;
&lt;h2 id=&#34;優先対応すべきチーム&#34;&gt;優先対応すべきチーム
&lt;/h2&gt;&lt;p&gt;最優先で対応すべき環境：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;自己ホスト型 Next.js 本番サイト。&lt;/li&gt;
&lt;li&gt;クラウド VM、コンテナ、Kubernetes、内部ネットワークで動作する環境。&lt;/li&gt;
&lt;li&gt;アプリケーションサーバーがクラウド metadata サービスへアクセスできる環境。&lt;/li&gt;
&lt;li&gt;アプリケーションサーバーが内部管理画面、データベース、キャッシュ、監視システムへアクセスできる環境。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;next start&lt;/code&gt; origin server を直接公開している環境。&lt;/li&gt;
&lt;li&gt;古い &lt;code&gt;next&lt;/code&gt; を使っており、アップグレード担当が明確でない環境。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;相対的に優先度が低い環境：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;完全に Vercel へデプロイされているアプリケーション。&lt;/li&gt;
&lt;li&gt;すでに修正版へアップグレード済みのアプリケーション。&lt;/li&gt;
&lt;li&gt;origin server が直接公開されておらず、入口層で不要な WebSocket upgrade を遮断している環境。&lt;/li&gt;
&lt;li&gt;アウトバウンドネットワークが厳格に制御され、機密性の高い内部リソースへ到達できない環境。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;ただし「優先度が低い」は「アップグレード不要」という意味ではありません。Next.js は露出度の高いフレームワークであり、古いバージョンを長く使うほどリスクは積み上がります。&lt;/p&gt;
&lt;h2 id=&#34;開発チーム向けチェックリスト&#34;&gt;開発チーム向けチェックリスト
&lt;/h2&gt;&lt;p&gt;次のチェックリストで対応できます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; すべてのリポジトリの &lt;code&gt;next&lt;/code&gt; バージョンを確認する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Vercel プロジェクトだけでなく、すべての自己ホスト型デプロイを洗い出す。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;next start&lt;/code&gt; または内蔵 Node.js server を使うサービスを特定する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; &lt;code&gt;15.5.16&lt;/code&gt;、&lt;code&gt;16.2.5&lt;/code&gt;、またはそれ以降へアップグレードする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 本番イメージを再ビルドして公開する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 入口層で不要な WebSocket upgrade を遮断する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; アプリケーションサーバーからクラウド metadata と機密性の高い内部ネットワークへのアクセスを制限する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 直近の異常な upgrade リクエストとアウトバウンドアクセスを確認する。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 露出した疑いのある認証情報をローテーションする。&lt;/li&gt;
&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; Next.js のセキュリティ更新を依存関係更新プロセスに組み込む。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;まとめ&#34;&gt;まとめ
&lt;/h2&gt;&lt;p&gt;CVE-2026-44578 は、真剣に対応すべき Next.js の高危険度 SSRF 脆弱性です。&lt;/p&gt;
&lt;p&gt;Vercel ホストのデプロイには影響しませんが、自己ホスト型 Next.js アプリには広く影響します。対象は &lt;code&gt;13.4.13&lt;/code&gt; から &lt;code&gt;15.5.16&lt;/code&gt; 未満、そして &lt;code&gt;16.0.0&lt;/code&gt; から &lt;code&gt;16.2.5&lt;/code&gt; 未満です。トリガーは WebSocket upgrade の処理経路であり、攻撃者はサーバーに内部または外部アドレスへ代理アクセスさせ、内部サービスやクラウド metadata エンドポイントを露出させる可能性があります。&lt;/p&gt;
&lt;p&gt;直接的な修正は &lt;code&gt;15.5.16&lt;/code&gt; または &lt;code&gt;16.2.5&lt;/code&gt; へのアップグレードです。一時緩和としては、origin server を直接公開しないこと、不要な WebSocket upgrade を遮断すること、アプリケーションサーバーのアウトバウンドアクセスを制限することが挙げられます。&lt;/p&gt;
&lt;p&gt;運用チームにとって重要なのは CVE スコアだけではありません。あなたの Next.js サーバーが、そのネットワーク位置から何にアクセスできるかです。SSRF の実際の影響は、サーバーの背後にある内部リソースとクラウド権限に左右されます。&lt;/p&gt;
&lt;p&gt;参考リンク：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/vercel/next.js/security/advisories/GHSA-c4j6-fc7j-m34r&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;GitHub Advisory：GHSA-c4j6-fc7j-m34r&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://nvd.nist.gov/vuln/detail/CVE-2026-44578&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;NVD：CVE-2026-44578&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://security.snyk.io/vuln/SNYK-JS-NEXT-16638682&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Snyk：SNYK-JS-NEXT-16638682&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
