掲載記事 165本きょう +22026年11月9日(月)運営:株式会社Rabbitly

  1. 新着npm部品bee-jsに不正な版、入れると遠隔操作のおそれ
  2. 新着PyPIに悪性パッケージ39件、入れるだけで動く手口も
  3. 新着NASをインターネットに出さない 確かめる3つの設定
  4. 新着パスキーの始め方 まず管理者のアカウントから
  5. 新着今週のセキュリティまとめ 11月1日〜7日
  6. 新着政府がサイバー緊急対策パッケージ決定 お助け隊に復旧支援を追加
  7. 新着退職者のアカウント、片づけ漏れを防ぐ5つの手順
  8. 新着OpenSSHの欠陥に攻撃、囮サーバーでroot取得と報道
  1. トップ
  2. 脆弱性情報
  3. Next.jsに7件の修正、キャッシュで他の利用者の内容が返るおそれ
脆弱性情報

Next.jsに7件の修正、キャッシュで他の利用者の内容が返るおそれ

サイバーセキュリティ情報センター 編集部

画像はイメージです。記事に出てくる組織や現場とは関係ありません。

Next.js が 16.4.5 と 15.5.29 を公開し、7件の欠陥を直しました。多くは保存した結果を使い回す仕組みの欠陥で、別のテナントや利用者向けの内容が返るおそれがあります。CVSS は最大 6.9 です。

脆弱性の概要

注意CVSS6.9
対象
Next.js
悪用
確認されていない
影響
別のテナントや利用者向けの内容が返る
修正版
修正版あり
公表元
Vercel(Next.js)/ GitHub
影響を受ける製品
製品対象のバージョン修正版
Next.js 16系16.0.0〜16.4.4(欠陥ごとに始まりが違う)16.4.5
Next.js 15系15.5.28 以前(7件のうち3件)15.5.29

やること

Next.js は React で Web サイトや Web システムを作るためのフレームワークです。開発元の Vercel は11月3日に 16.4.5 と 15.5.29 を公開し、7件の欠陥を直しました。Next.js で動くシステムがある場合は、次の順で進めてください。

  • 16系は 16.4.5、15系は 15.5.29 に上げてください。コマンドは npm install next@16.4.5 か npm install next@15.5.29 です
  • 15系が対象になるのは7件のうち3件です。残りの4件は、告知で16系だけが対象とされています
  • ホスティングのサービスに載せている場合は、そのサービスの案内も読んでください。当てはまる欠陥と、更新のほかにする作業がサービスごとに違います

何が危ないのか

Vercel は10月27日に、11月3日に定期の更新を出すと予告していました。予告では7件とも深刻度は中程度とされていました。11月3日の発表では、このうち1件を深刻度 High としています。一方、GitHub の告知では7件とも Moderate で、CVSS v4 の値は 6.0 から 6.9 です。

7件のうち4件は use cache という書き方で結果を保存して使い回す機能(Cache Components)の欠陥です。キャッシュは一度作った結果を保存しておき、次の要求に返して表示を速くする仕組みです。保存した結果を誰に返してよいかの区別を誤ると、ある利用者やテナント向けの内容が別の人に返ります。

  • CVE-2026-119790(CVSS 6.3):発表で High とされた欠陥です。テナントの識別子のような URL の値(ルートパラメーター)を読む use cache の関数を、直接と unstable_cache() の中の両方から呼ぶと起きます。プロセスを起動して最初に結果を作っている最中に呼び出しが重なると、別の要求の結果がそのまま保存されます。対象は 16.3.0 以降です
  • CVE-2026-119351(CVSS 6.3):use cache の関数を入れ子にし、内側がルートパラメーターを読んで、遅れて届く値を含む結果を返すと、外側の結果がその値の区別なしに保存されます。告知によると、どの内容が漏れるかを攻撃者は選べません。以前の欠陥(GHSA-h694-7cp9-m8p3)の修正で防げなかった別の形で、対象は 16.2.0 以降です
  • CVE-2026-119349(CVSS 6.3):Uint8Array や Blob のようなバイナリの値を use cache の関数に渡すと、違う値でも同じキャッシュの鍵になることがあります。その値で利用者を区別していると、他人の結果を受け取ったり、自分の結果を他人に返させたりできます
  • CVE-2026-119350(CVSS 6.3):自社のサーバーで next start で動かし、Cache Components を有効にして Partial Prefetching を使っていない場合の欠陥です。ログインしていない人の1回の要求で、複数のページが共有する下地(シェル)が汚されます。その結果、配下のすべての URL に 404 を返し続け、再起動しても直らないことがあります。ページの組み方にいくつかの条件が重なったときだけ起き、対象は 16.4.0 以降です

残りの3件は15系も対象です。

  • CVE-2026-119348(CVSS 6.3):外から取ってきた応答をそのまま返す作りで、圧縮を解いた本文に、圧縮されていたときの長さなどのヘッダーを付けたまま送ることがあります。1本の接続に複数の要求を続けて流す HTTP/1.1 のリバースプロキシーを手前に置いていると、応答が別の利用者に渡るおそれがあります。自社のサーバーで動かしている場合の欠陥です
  • CVE-2026-119346(CVSS 6.0):Edge ランタイムで動く Route Handler や API ルートで、NextResponse.cookies.set() で Cookie を設定すると、その値が内部用の x-middleware-set-cookie ヘッダーにも入ります。このヘッダーは同じサイトの JavaScript から読めるので、HttpOnly で隠したはずのセッションの Cookie が読まれるおそれがあります。攻撃者がそのサイトで JavaScript を動かせることが前提で、この欠陥だけで JavaScript を動かせるわけではありません
  • CVE-2026-119347(CVSS 6.9):画像を最適化する /_next/image で、許可した取得元にある攻撃者の画像を AVIF と取り違え、dangerouslyAllowSVG: false で断っているはずの SVG として読み込みます。SVG を読む部品に負荷をかけられたり、その部品の欠陥を突かれたりしやすくなります。この欠陥だけでクロスサイトスクリプティングや遠隔からのコード実行ができると示されたわけではない、と発表は書いています

発表と GitHub の告知に、悪用されたという記載はありません。

対象

告知の対象は、16系が 16.0.0 から 16.4.4 で、欠陥ごとに始まりが違います。15系は 15.5.28 以前で、3件が当てはまります。修正版は 16.4.5 と 15.5.29 だけで、14系以前の修正版は告知にありません。

ホスティングのサービスで動かす場合は、当てはまる欠陥が変わります。Netlify は自社の案内で、7件のうち4件が Netlify 上のサイトに当てはまるとしています。Next.js を上げたうえで、連携の部品 @netlify/plugin-nextjs を 5.16.6 にし、本番や確認用など配備ごとのキャッシュを消すよう勧めています。

回避策

回避策が告知に書かれているのは2件です。

  • CVE-2026-119790:use cache の関数を unstable_cache() の中で呼ばないようにすれば、完全に防げるとされています
  • CVE-2026-119350:next.config で partialPrefetching: true を設定するよう勧められています

ほかの5件は、修正版に上げることが唯一の対処とされています。

中小企業が確かめること

委託して作った Web サイトやシステムが Next.js で動いている場合は、使っている Next.js のバージョン、use cache や Cache Components を使っているか、自社のサーバーとホスティングのサービスのどちらで動かしているかを、委託先に聞いてください。

テナントや会員ごとに違う内容を出すシステムでは、更新のあとに保存済みのキャッシュを消すことも相談してください。CVE-2026-119790 の告知では、誤って保存された内容は、作り直されるか消されるまで後の要求に返り続けるとされています。同じ週には、Node.js の通信部品でもキャッシュから別の利用者の応答が返る欠陥が直っています(Node.jsの通信部品undiciに6件の修正、他人の応答が返るおそれ)。

自社で確かめること

  1. Next.js のバージョンを調べる`npm ls next` で使っているバージョンを調べ、16系は 16.4.5、15系は 15.5.29 より前でないかを確かめてください。
  2. キャッシュの使い方を聞く`use cache` や Cache Components を使っているか、テナントや会員ごとに違う内容をキャッシュしていないかを開発の担当者に聞いてください。
  3. 動かしている場所を確かめる自社のサーバーで `next start` で動かしているのか、ホスティングのサービスに載せているのかを確かめ、サービスの案内も読んでください。
自社で確かめるのが難しい場合はCyberScope のセキュリティ診断(3万円から)

出典

コメント 0

まだコメントはありません。

関連記事