Next.js、11月のセキュリティリリース公開 テナント越しのキャッシュ漏えいを修正
Next.jsセキュリティCVEキャッシュマルチテナントVercel
Next.js が2026年11月のセキュリティリリースを公開した。修正版は v16.4.5(Active LTS)と v15.5.29(Maintenance LTS)。最も深刻なのは unstable_cache と use cache を併用した際のテナント横断キャッシュ漏えいで、Cache Components を有効にしたマルチテナント構成は優先的な更新が必要になる。
何が発表されたか
- Next.js が2026年11月のセキュリティリリースを公開した(11月3日)。修正版は v16.4.5(Active LTS)と v15.5.29(Maintenance LTS)。
- 高深刻度(1件):
unstable_cacheとuse cacheを併用した場合のテナント横断キャッシュ漏えい(GHSA-mfr8-8qww-v76h)。Cache Components 有効時、同一の公開use cache関数を直接呼び出す経路とunstable_cache経由の経路が併存すると、コールドキャッシュ充填中の並行リクエストがルートパラメータの検証を経ずに他リクエストの結果を受け取り、それがキャッシュされて以降の同一引数の呼び出しにも配信されうる。 - 中深刻度(6件): ネストした
use cacheでのルートパラメータ跨ぎの情報開示(GHSA-vc7v-qv4w-wrv8)/バイナリ引数が同一のキャッシュ識別子に解決されることによるユーザー横断の漏えいと汚染(GHSA-rhh4-g77r-r9qj)/セルフホスト時の共有シェル汚染/圧縮レスポンスのフレーミング不整合によるクライアント跨ぎのレスポンス混入(GHSA-pc58-hwjq-p385)/Edge Route Handlers でNextResponse.cookies.set()が内部ヘッダx-middleware-set-cookieに Cookie を露出(HttpOnly でも同一オリジンのJSから読める、GHSA-f3mh-rxg3-f5g2)/画像最適化での SVG 判定バイパス(GHSA-7qx7-33qx-rqx2)。
開発者への影響
更新は npm install [email protected](16系)または npm install [email protected](15系)。
優先度が最も高いのはマルチテナント構成のサイトだ。Cache Components を有効にしていて、テナントIDやロケール、サイト識別子をルートパラメータで分けているなら、他社のデータが別の顧客に配信されうる。まず unstable_cache と use cache が同じ関数に対して混在している箇所を棚卸ししたい。
Edge ルートで Cookie を設定している場合は、NextResponse.cookies.set() から cookies().set() 経由に寄せると露出条件を外せる。セルフホストで next start 運用かつ Partial Prefetching が未設定の環境は、シェル汚染の条件に当たるため設定を確認する。画像最適化で外部ドメインを許可していて images.dangerouslyAllowSVG: false に頼っている構成も対象だ。
利用条件
Vercel 上でホスティングしていてもアプリ側の依存更新は必要。脆弱性報告は Vercel の Open Source Bug Bounty(HackerOne)経由で受け付けている。
