Next.jsの脆弱性情報、会社のWebアプリが対象かを確かめる。この記事は2026年10月21日に確認できた公式情報を起点に、Next.jsの脆弱性情報、会社のWebアプリが対象かを確かめるという疑問に答えるための確認手順を整理します。自社で対象か分からない項目は推測で埋めず、管理担当や提供元へ確認してください。

脆弱性情報の概要と影響範囲の把握

確認する3つの視点:公表された脆弱性の要点整理、自社Webアプリの使用技術スタック確認、影響範囲の初期評価基準
図1:脆弱性情報の概要と影響範囲の把握

公表された脆弱性の要点整理

今回のNext.jsの更新では、複数の問題が公表されています。JPCERT/CCの週報には、一部の問題について概念実証コードの公開を確認した説明もあります。ひとつの番号や機能だけを見て、ほかの問題もすべて同じ条件だと判断しないようにします。

自社のアプリで使う構成と、開発元が示す各問題の条件を開発会社へ照合してもらってください。修正の反映、依存するソフトの扱い、公開先での動作確認をどこまで行うかも確認します。更新が公開されたことだけで、自社への適用が済んだとは扱いません。

この内容を社内で正しく把握するためには、次の点を担当者に確認してください。

  1. 現在運用中の Next.js のバージョンと、対象となる脆弱性が含まれるかどうかの確認。
  2. 既に最新版へアップデート済みか、またはアップデートの計画があるか。
  3. アップデートに伴うテストやリリース手順で、特別な作業が必要かどうか。

上記の質問に対する回答を得ることで、脆弱性への対応が適切に行われているかを判断できます。もしバージョンが対象外であったり、アップデートが未実施の場合は、対応の優先度やスケジュールを検討する必要があります。担当者から得た情報は、社内のリスク評価や今後の対策計画に活用してください。

自社Webアプリの使用技術スタック確認

まずは自社の Web アプリが Next.js を採用しているかどうかを確認します。開発チームのリポジトリや設計書に「next"」という文字列が記載されているか、またはビルドスクリプトで "next build" が実行されているかをチェックしてください。

利用が確認できた場合は、実装時に使用したバージョンを特定することが次のステップとなります。バージョン情報は package.json の "next" エントリや、ロックファイル(package‑lock.json、yarn.lock)に明示されています。

影響範囲の初期評価基準

影響があるかどうかは、実際に使用している Next.js のバージョンが公式修正対象に含まれるかで判断します。修正が提供されたバージョン以降であれば、脆弱性は適用外と見なせます。

一方、対象バージョン未満の場合は、該当機能(例:サーバーサイドレンダリングや API ルート)が利用されているかを確認し、影響が出る可能性がある領域を絞り込みます。初期評価では、機能単位での利用有無とバージョンの差分を一覧化すると、判断材料が整理しやすくなります。

対象判定のための具体的チェック項目

確認する3つの視点:依存関係ファイルの確認方法、デプロイ環境のバージョン実態確認、例外的に影響外と判断できるケース
図2:対象判定のための具体的チェック項目

依存関係ファイルの確認方法

package.json とロックファイルを開き、"next" のエントリを探します。バージョン番号は "^" や "~" で始まる範囲指定がある場合があるため、実際にインストールされたバージョンは lock ファイルで確定させます。

ロックファイルに記載された正確なバージョンを抽出し、公式修正バージョンと照合することで、対象かどうかを判断できます。抽出結果は、担当者が確認しやすいように表形式でまとめると便利です。

デプロイ環境のバージョン実態確認

本番サーバー上で動作している Next.js の実体バージョンは、デプロイ時に生成された "node_modules/next/package.json" を確認するか、実行中のプロセスから "npm list next" で取得できます。

サーバーに直接アクセスできない場合は、CI/CD のビルドログやデプロイ履歴にバージョン情報が残っていることがあります。取得したバージョンを先ほどの比較表に追加し、実稼働環境が修正済みかどうかを最終確認します。

例外的に影響外と判断できるケース

カスタムビルドで Next.js の本体を差し替えている場合や独自の修正を加えている場合は、公式の修正がそのまま適用されているかどうかは自動的には判断できません。まずは、実装した変更点が脆弱性の対象箇所を含んでいるかを、開発担当者に具体的に確認してください。その際に聞くべきポイントは、次のとおりです。

  • 変更したコードやパッチの内容は、脆弱性が指摘された箇所をすべてカバーしていますか。
  • 変更履歴やレビュー記録に、対象箇所への対応が記載されているか。

また、サーバーレス環境で Edge Runtime のみを利用している場合でも、サーバーサイドで実行されるコードが全く関与しないかどうかは、実際の構成を確認しなければ結論は出せません。担当者には、利用しているランタイムの範囲と、脆弱性が影響する可能性のあるコードが含まれていないことを示す根拠を提示してもらうよう依頼してください。

これらの情報を文書にまとめ、関係者の合意を得たうえで、影響の有無を最終的に判断することが重要です。

担当者への質問と依頼フロー

確認する3つの視点:開発担当へのバージョン情報取得依頼、インフラ担当へのデプロイ実態確認依頼、セキュリティ担当へのリスク評価依頼
図3:担当者への質問と依頼フロー

開発担当へのバージョン情報取得依頼

まず、Web アプリで実際に使用している Next.js のバージョンを正確に把握することが重要です。バージョンが分かっていれば、脆弱性情報と照らし合わせて、対象となるかどうかを判断できます。

開発担当には、プロジェクトの依存関係ファイルに記載されている Next.js のバージョンと、実際にインストールされたバージョンが一致しているかを確認してもらいましょう。

具体的には、担当者に次の点を質問してください。
・プロジェクトの依存関係ファイルに記載されている Next.js のバージョンは何か。
・実際にビルドや実行に使用されているバージョンはそれと同じか、差異がある場合はその理由と現在のバージョン。
・バージョン情報を確認できなかった場合は、確認できなかった理由と代替的に取得できる情報。

このように確認項目とその背景を整理して依頼すれば、脆弱性対応の判断材料が揃いやすくなります。

インフラ担当へのデプロイ実態確認依頼

インフラ担当に実際に稼働している Next.js のバージョンを確認してもらう目的は、脆弱性情報に対応した適切なバージョンが使用されているかを判断するためです。

現在の依頼文では、ビルド成果物の package.json とサーバ上の node_modules 内の package.json を比較するという手順が示されていますが、具体的な操作や取得方法は記載されていません。また、提出期限や報告形式といった固定的なルールは、担当の業務フローや社内の報告体制に合わせて柔軟に設定すべきです。

そこで、インフラ担当に確認すべきポイントを次のように整理します。

  1. 現在本番サーバで稼働中の Next.js のバージョンは何か、またそのバージョンが公式に提示されている脆弱性情報に該当しないかを教えてください。
  2. バージョン情報の取得方法として、ビルド時に生成された成果物とサーバ上の実際のファイルの両方を確認する必要があるか、どちらか一方で十分かを判断してください。
  3. 確認結果を報告する際に、サーバ名や取得日時といった基本情報と、確認したバージョンだけを含めた簡潔な形式で提出してもらえるか、担当の方が利用しやすい形を教えてください。

これらの質問を通じて、実際に使用されているバージョンが脆弱性対策済みかどうかを確実に把握し、必要に応じてアップデートの検討や追加の確認作業を計画できるようになります。担当者の業務負担や社内の報告手順に合わせて、提出期限や報告様式は柔軟に調整してください。

セキュリティ担当へのリスク評価依頼

セキュリティ担当に依頼する際は、まず現在使用しているフレームワークのバージョンが、外部から指摘されている脆弱性に該当するかどうかを確認してもらうことが重要です。その上で、次の点について具体的に質問してください。

  1. 現行バージョンに、問題となっている機能(例としてメモリ管理に関わる処理)が実装されているかどうか
  2. その機能が外部から直接呼び出される可能性がある経路やインターフェースが存在するか
  3. 当該機能が扱うデータが顧客情報など重要なものか、また業務上の影響度や緊急性をどのように評価すべきか

回答は「リスクの有無」と「対応の優先度(高・中・低)」を簡潔に示し、判断の根拠となる情報(例えば該当バージョンのリリースノートや脆弱性情報の出典)を添えてもらうよう依頼してください。期限は、業務の進行に支障が出ないよう、できるだけ早く、具体的には翌営業日までに返答を求める旨を伝えておくとよいでしょう。

これにより、リスクの有無を正確に把握したうえで、必要な対策を検討する材料が揃います。

確認完了と検収の実務手順

取り組む順番:対象外判定時の報告書作成ポイント、対象判定後の修正適用手順確認、失敗時の再評価とエスカレーション方法
図4:確認完了と検収の実務手順

対象外判定時の報告書作成ポイント

対象外と判断した場合は、必ず報告書を作成し、根拠を明示することが重要です。報告書には、対象外とした理由(例:カスタムビルドで脆弱箇所が除外されている、既に社内パッチが適用済みである等)と、確認に使用した証拠(ロックファイルの該当行、ビルドログの抜粋)を添付します。

また、開発・インフラ・セキュリティ各担当者の署名または承認印を入れ、最終的に管理者が承認したことを明記して提出します。

対象判定後の修正適用手順確認

対象と判定された場合は、まずNext.jsの公式修正版バージョンを取得し、開発チームにアップデート作業を依頼します。アップデート後は、本番とは別の検証環境で回帰テストを実施し、特に脆弱性が指摘されたメモリ解放処理に関わるページやAPIの動作確認を行います。

テストが完了したら、インフラ担当に本番デプロイの手順とスケジュールを提示し、完了報告書にテスト結果とデプロイ日時を記載して最終完了の了承を得ます。

失敗時の再評価とエスカレーション方法

修正適用後にテストが失敗したり、デプロイ後に予期せぬエラーが発生した場合は、速やかに原因分析を行い、再評価の結果をセキュリティ担当に共有します。再評価の際は、失敗したテストケース、エラーログの抜粋、影響範囲の再測定結果をまとめ、担当者全員にメールで報告します。

解決が見込めない場合は、上長へ責任者への連絡し、必要に応じて外部提供元やNext.js公式サポートへ問い合わせる手順を文書化し、次のアクションプランを策定します。

参照情報・確認日

以下の公式情報を背景に、本文の手順・判断例はAX labsの提案として整理しています。料金や効果の保証は扱っていません。