脆弱性対応ウォッチ重大・クリティカル脆弱性のクラウド別対応まとめ
最新更新履歴CriticalHigh回避策のみパッチありAWSGCPAzureLinux
High CVSS 7.4
CVE-2026-13697

undici の共有キャッシュで他人のCookieが配られる

情報取得日: 2026/07/29/最終確認: 2026/08/21・本ページは公開情報の非公式まとめです

CVE IDCVE-2026-13697
製品OpenJS Foundation / Node.js / undici(cache interceptor)
CVSS7.4(High)
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H
種別 (CWE)CWE-200 機微情報の露出 / CWE-248 未捕捉例外 / CWE-525 機微情報を含むキャッシュの利用
登録/公開日2026/07/29
出典https://nvd.nist.gov/vuln/detail/CVE-2026-13697

概要

Node.js の HTTP クライアント undici の cache interceptor に、2つの欠陥がある。ひとつめは情報漏えいで、上流が返す Cache-Control の private ディレクティブが壊れた形(private が空値、つまり private="" のような degenerate qualified private directive)で来ると、undici がそれを「共有キャッシュに入れてよい応答」と誤って判定し、既定の共有キャッシュへ格納する。同じキャッシュキーで後から来た別の呼び出し元に、その応答がそのまま配られる。NVD の記述と GitHub Security Advisory GHSA-4cwx-7wf7-3272 はいずれも、漏れる対象に応答本文だけでなく Set-Cookie を含むヘッダが入ると明記している。つまり利用者ごとに異なるはずの応答が、別の利用者に渡る。ふたつめは可用性で、Cache-Control に修飾なしの private と修飾つきの private が混在したヘッダが来ると、cache-control のパーサで未捕捉の TypeError が発生する。その要求は失敗し、呼び出し側のエラー処理次第ではプロセスごと落ちる。成立条件は advisory が明示していて、(1) cache interceptor が shared モードで有効になっていること(これは既定の構成を含む)、(2) 上流が壊れた Cache-Control を返すこと、(3) 後続の要求が同じキャッシュキーに当たること、の3つがそろったときである。逆に言えば、攻撃者が任意に条件を作れるわけではなく、上流の応答ヘッダに依存する。CVSS はここが評価者によって割れている。ベンダー側(GHSA-4cwx-7wf7-3272)と NVD API が返す主評価はいずれも 7.4 High、ベクタは AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H で、攻撃条件の複雑さ AC:H が効いている。一方 NVD の詳細ページには 9.1 Critical(AC:L)の評価も併記されている。当サイトはベンダーと NVD API が一致する 7.4 High を採用し、より高い評価が存在することをここに明記する。影響範囲は undici 7.0.0 以上 7.29.0 未満と、8.0.0 以上 8.9.0 未満。NVD の公開は 2026年7月29日、最終更新は 2026年8月4日である。CISA KEV への収載は 2026年8月21日時点で確認できていない。

クラウド/OS 別の対応状況

各ベンダー公式アドバイザリで確認できた事実に基づき整理しています。確認できていない項目は「情報確認中」と明記し、存在しないパッチ番号・バージョンは記載しません。

AWS / GCP / Azure は同じ対応区分です: パッチあり(アプリ更新)
Linux のみ異なります: 情報確認中
環境対応状況対応方法・備考
AWS (ECS/EC2) パッチあり(アプリ更新)
アプリケーションの依存として入っている undici を 7.29.0 / 8.9.0 以降へ更新する(npm update undici もしくは package.json とロックファイルの両方を更新)。Lambda・ECS・EC2 のいずれで動かしていても対象はアプリ側の依存である
AWS からの本 CVE 個別のセキュリティ速報は確認できていない(2026-08-21 時点)。Lambda のマネージドランタイムに同梱される Node.js の undici が対象になるかは AWS の公式情報で要確認。
参照リンク
GCP パッチあり(アプリ更新)
Cloud Run / GKE / Cloud Functions 上のアプリが依存する undici を 7.29.0 / 8.9.0 以降へ更新し、コンテナイメージを作り直す
GCP からの本 CVE 個別のセキュリティ速報は確認できていない(2026-08-21 時点)。修正対象は利用者が持ち込む npm 依存である。
参照リンク
Azure パッチあり(アプリ更新)
App Service / Functions / AKS 上のアプリが依存する undici を 7.29.0 / 8.9.0 以降へ更新する
Azure からの本 CVE 個別のセキュリティ速報は確認できていない(2026-08-21 時点)。
参照リンク
Linux 情報確認中
npm パッケージなので、まずはアプリの依存を 7.29.0 / 8.9.0 以降へ更新する。ディストリが配布する nodejs パッケージ側の扱いは各トラッカーで確認する
Ubuntu USN / Red Hat RHSA / Debian security tracker における本 CVE の扱いは 2026-08-21 時点で確認できていない。Node.js 本体が同梱する undici が対象になるかを含め、公式で要確認。
参照リンク

解決の方向性(パッチ/回避策/代替)

対応は undici を 7.29.0 または 8.9.0 以降へ更新することである。両系列とも修正版が出ているので、7 系を使い続ける場合も 8 系へ上げる必要はない。すぐに更新できない場合、advisory が回避策を3つ挙げている。第一に、利用者ごとに異なる応答(認証後のページ、個人設定、Set-Cookie を伴う応答)に共有キャッシュを使わないこと。第二に、cache interceptor の type を 'private' に指定して共有モードを外すこと。この脆弱性は共有モードでのみ成立するので、これが最も直接的な緩和になる。第三に、問題のある上流オリジンについてキャッシュそのものを無効化すること。運用側で確認しておきたいのは、自分のコードが undici を直接使っていなくても依存の奥で使われている場合があるという点である。npm ls undici で依存ツリー上の実バージョンを確認し、複数バージョンが同居していないかを見ること。ロックファイルを更新せずに package.json だけ直しても実体は変わらない。なお、cache interceptor は明示的に組み込む機能であり、これを使っていなければこの2つの欠陥は成立しない。まず「shared モードの cache interceptor を使っているか」を切り分けてから、更新の緊急度を決めるのが実務的である。Node.js 本体が同梱する undici についてこの CVE がどう扱われるかは、2026年8月21日時点で Node.js のセキュリティリリース情報から確認できていないため、後述のとおり要確認とする。

よくある質問(CVE-2026-13697)

CVE-2026-13697(undici)の影響は?

High(CVSS 7.4)に分類されるOpenJS Foundation / Node.js undici(cache interceptor)の脆弱性です。Node.js の HTTP クライアント undici の cache interceptor に、2つの欠陥がある。ひとつめは情報漏えいで、上流が返す Cache-Control の private ディレクティブが壊れた形(private が空値、つまり private="" のような degenerate qualified private directive)で来ると、undici がそれを「共有キャッシュに入れてよい応答」と誤って判定し、既定の共有キャッシュへ格納する。同じキャッシュキーで後から来た別の呼び出し元に、その応答がそのまま配られる。NVD の記述と GitHub Security Advisory GHSA-4cwx-7wf7-3272 はいずれも、漏れる対象に応答本文だけでなく Set-Cookie を含むヘッダが入ると明記している。つまり利用者ごとに異なるはずの応答が、別の利用者に渡る。ふたつめは可用性で、Cache-Control に修飾なしの private と修飾つきの private が混在したヘッダが来ると、cache-control のパーサで未捕捉の TypeError が発生する。その要求は失敗し、呼び出し側のエラー処理次第ではプロセスごと落ちる。成立条件は advisory が明示していて、(1) cache interceptor が shared モードで有効になっていること(これは既定の構成を含む)、(2) 上流が壊れた Cache-Control を返すこと、(3) 後続の要求が同じキャッシュキーに当たること、の3つがそろったときである。逆に言えば、攻撃者が任意に条件を作れるわけではなく、上流の応答ヘッダに依存する。CVSS はここが評価者によって割れている。ベンダー側(GHSA-4cwx-7wf7-3272)と NVD API が返す主評価はいずれも 7.4 High、ベクタは AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:H で、攻撃条件の複雑さ AC:H が効いている。一方 NVD の詳細ページには 9.1 Critical(AC:L)の評価も併記されている。当サイトはベンダーと NVD API が一致する 7.4 High を採用し、より高い評価が存在することをここに明記する。影響範囲は undici 7.0.0 以上 7.29.0 未満と、8.0.0 以上 8.9.0 未満。NVD の公開は 2026年7月29日、最終更新は 2026年8月4日である。CISA KEV への収載は 2026年8月21日時点で確認できていない。

CVE-2026-13697 の対応方法・回避策は?

対応は undici を 7.29.0 または 8.9.0 以降へ更新することである。両系列とも修正版が出ているので、7 系を使い続ける場合も 8 系へ上げる必要はない。すぐに更新できない場合、advisory が回避策を3つ挙げている。第一に、利用者ごとに異なる応答(認証後のページ、個人設定、Set-Cookie を伴う応答)に共有キャッシュを使わないこと。第二に、cache interceptor の type を 'private' に指定して共有モードを外すこと。この脆弱性は共有モードでのみ成立するので、これが最も直接的な緩和になる。第三に、問題のある上流オリジンについてキャッシュそのものを無効化すること。運用側で確認しておきたいのは、自分のコードが undici を直接使っていなくても依存の奥で使われている場合があるという点である。npm ls undici で依存ツリー上の実バージョンを確認し、複数バージョンが同居していないかを見ること。ロックファイルを更新せずに package.json だけ直しても実体は変わらない。なお、cache interceptor は明示的に組み込む機能であり、これを使っていなければこの2つの欠陥は成立しない。まず「shared モードの cache interceptor を使っているか」を切り分けてから、更新の緊急度を決めるのが実務的である。Node.js 本体が同梱する undici についてこの CVE がどう扱われるかは、2026年8月21日時点で Node.js のセキュリティリリース情報から確認できていないため、後述のとおり要確認とする。

自分の環境が CVE-2026-13697 の影響を受けるか確認するには?

OpenJS Foundation / Node.js undici(cache interceptor) を利用している場合、稼働バージョンが影響範囲に含まれるかを一次情報(https://nvd.nist.gov/vuln/detail/CVE-2026-13697)で確認してください。AWS・GCP・Azure・Linux それぞれの対応状況は本ページの「クラウド/OS 別の対応状況」表にまとめています。確認できていない項目は「情報確認中」と明記しており、存在しないパッチ番号・バージョンは記載していません。

参考情報(出典)

本ページの記載は下記の一次情報に基づく非公式まとめです。数値・対応状況は各出典元で最終確認してください(最終確認: 2026/08/21)。

免責: 本ページは CISA KEV・NVD・各ベンダー公式アドバイザリ等の公開情報をもとにした非公式まとめです。修正バージョンや対応可否は変更される場合があります。実際の対応は必ず 出典元および各ベンダー公式情報・自環境で確認してください。

« 一覧に戻る