0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Next.jsのCookie漏えい修正、自分のアプリが対象か確認する

0
Last updated at Posted at 2026-11-10

Next.jsのCookie漏えい修正、自分のアプリが対象か確認する

Next.jsの11月3日のセキュリティ更新で、Edge runtimeのルートからCookieの値が漏れる問題が修正されました。認証まわりで NextResponse.cookies.set() を使っているアプリでは、実行環境とNext.jsのバージョンを確認しておきたい更新です。 Next.js公式の11月セキュリティ更新

どんな条件で影響する?

対象は、App RouterのEdge Route Handlerや、Pages RouterのEdge API routeで NextResponse を通してCookieを設定するケースです。レスポンスに付く内部用ヘッダー x-middleware-set-cookie にもCookieの値が入り、同一オリジンで動くJavaScriptから読み取れる状態になります。HttpOnly を付けたセッショントークンも対象になり得ます。識別子は CVE-2026-119346、GHSA-f3mh-rxg3-f5g2 です。 公式アドバイザリ

公式の説明では、機密性のあるCookieが対象のレスポンスに設定され、攻撃者のJavaScriptが同一オリジンで実行されることが影響の条件です。Node.jsのRoute Handlerや cookies().set() を使うルートでは、報告された漏えいは再現していません。 Next.js公式の影響説明

バージョンとCookieを書いている処理を確認する

公式アドバイザリに載っている影響範囲と修正版は次のとおりです。

系列 影響するバージョン 修正版
15系 15.0.0〜15.5.28 15.5.29
16系 16.0.0〜16.4.4 16.4.5

出典は2026年11月10日に確認した公式アドバイザリです。 影響範囲と修正版

まず、アプリで実際に解決されている next のバージョンを見てみましょう。npmを使っているプロジェクトなら、アプリのディレクトリで次を実行します。

npm ls next

続いて、エディターの全体検索で runtime、NextResponse、cookies.set を探します。見つかった箇所について、次の順で確認してください。

  1. 対象のAPIやRoute HandlerがEdge runtimeで動くか。
  2. NextResponse にCookieを設定して返しているか。
  3. そのCookieにセッショントークンなどの機密情報が入るか。

Cookieの設定を共通関数や認証ライブラリに任せている場合は、その呼び出し先も見ます。文字列検索の結果は調べる場所を絞るために使い、実際にどのレスポンスへCookieを付けるのかまで追いましょう。

AIに調査を頼むなら、たとえば次のように依頼できます。

このアプリがGHSA-f3mh-rxg3-f5g2の影響条件に当てはまるか調べてください。
まず調査結果だけを報告してください。

・ロックファイルからNext.jsの解決済みバージョンを確認する
・Edge runtimeで動くAPIやRoute Handlerを探す
・NextResponseでCookieを設定する処理と、その呼び出し先を確認する
・機密性のあるCookieを設定するルートを、ファイルパスと根拠付きで示す
・追跡できなかった処理は「要確認」として残す

Cookieやトークンの実値は出力に含めないでください。

この依頼文は、公式の影響条件をコード調査に使うための例です。

修正版でビルドし直して、認証の動作まで確認する

11月3日の公式告知では、15系は15.5.29、16系は16.4.5への更新を案内しています。npmを使っている場合のコマンドです。 公式の更新案内

15系の場合

npm install next@15.5.29

16系の場合

npm install next@16.4.5

すでにこれより新しい修正版を使っている場合は、現在のバージョンを確認したうえで扱ってください。更新後はロックファイルも含めて差分を確認し、アプリを再ビルドしてデプロイします。

動作確認では、テスト用アカウントでログインやセッション更新を行い、Cookieが設定されるレスポンスをブラウザのNetworkパネルで確認してみましょう。内部用の x-middleware-set-cookie ヘッダーから機密Cookieの値が露出していないことに加え、ログイン状態の維持とログアウトも確認します。認証情報が入ったレスポンス全体を、そのまま共有用のログやスクリーンショットに残さないようにしてください。

おわりに

まずは、Next.jsの解決済みバージョンと、認証用Cookieを設定するルートの実行環境を見てみましょう。調査をAIに任せる場合も、対象ファイルと判定の根拠を出してもらうと、更新作業のレビューにつなげられます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?