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

Fastify の reply-from で upstream を跨ぐ誤転送が起きる

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

CVE IDCVE-2026-16158
製品Fastify / @fastify/reply-from
CVSS10.0(Critical)
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N
種別 (CWE)CWE-441 意図しない代理・中継(Confused Deputy)
登録/公開日2026/07/18
出典https://nvd.nist.gov/vuln/detail/CVE-2026-16158

概要

Fastify のリバースプロキシ用プラグイン @fastify/reply-from の 8.3.1 以上 12.6.4 未満で、内部の URL キャッシュのキーを転送先と元のパスを区切り文字なしで連結して作っている。このため転送先とパスの組み合わせが異なるのに同じキーになる場合があり、解決される upstream の URL は別物という状態が起こる。getUpstream がリクエストの内容から転送先を選ぶ構成では、ある upstream 向けにキャッシュされた URL が別の upstream 宛てのリクエストで再利用され、本来アクセスできない upstream に対する読み取りと書き込みが発生する。アドバイザリは既定の構成が影響を受けると明記しており、disableCache を true にするとこの挙動を防げるとしている。修正版は 12.6.4。CVSS は評価元で割れており、NVD(Primary)は 10.0 Critical(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N)、CNA(Secondary)は 8.7 High(AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N)で、キー衝突を狙う難しさを攻撃の複雑度としてどう見るかの差である。CISA KEV には未収載。NVD の vulnStatus は Analyzed。CWE は CWE-441。

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

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

AWS / GCP / Azure / Linux いずれも対応区分は同じです: パッチあり(アプリ更新) 下の表は環境ごとの補足です。
環境対応状況対応方法・備考
AWS (ECS/EC2) パッチあり(アプリ更新)
EC2 / ECS / EKS / Lambda 上の Fastify ゲートウェイで @fastify/reply-from を 12.6.4 以降へ更新する
AWS 側の欠陥ではなく利用者が動かすアプリの依存の問題。ALB や API Gateway の背後に置いた自作プロキシが対象になりやすい。即時に更新できない場合は disableCache: true を設定して再デプロイする。
参照リンク
GCP パッチあり(アプリ更新)
Compute Engine / GKE / Cloud Run 上の Fastify プロキシで @fastify/reply-from を 12.6.4 以降へ更新する
Cloud Run はリビジョンを差し替えるまで古いイメージが動き続ける。マルチテナントで upstream を動的に選ぶ構成を優先して直す。
参照リンク
Azure パッチあり(アプリ更新)
Azure VM / AKS / App Service 上の Fastify プロキシで @fastify/reply-from を 12.6.4 以降へ更新する
App Service ではデプロイ済みアーティファクトの依存版を実物で確認する。暫定対応として disableCache: true を入れる場合も、設定が本当に効いているかログや動作で確かめる。
参照リンク
Linux パッチあり(アプリ更新)
npm / pnpm / yarn で @fastify/reply-from を 12.6.4 以降へ更新する。暫定的にはプラグイン登録時に disableCache: true を渡す
OS 更新では直らない npm 依存。ロックファイルを更新しないと古い版が入り続ける。既定の構成が影響を受けるとされているので、設定を変えていないことは安全側の根拠にならない。
参照リンク

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

判定は二段階で見る。まず npm ls @fastify/reply-from やロックファイルで版を確認し、8.3.1 以上 12.6.4 未満なら該当である。次に、自分の使い方が危険側かを切り分ける。この問題が実害になるのはリクエストの内容から転送先を動的に選んでいる構成、つまり getUpstream を使って複数の upstream に振り分けている場合で、転送先が固定のシンプルなプロキシであれば取り違えの余地は小さい。コード中の reply-from の登録箇所(fastify.register の設定、replyFrom の呼び出し、upstream や getUpstream の指定)を検索して、動的に決めている箇所があるかを確認する。マルチテナントのゲートウェイやテナントごとに upstream を切り替える API 前段で使っている場合が最も危険で、テナント間のデータ混線という形で影響が出る。見落としやすいのは、自分で書いたプロキシではなく社内共通のゲートウェイライブラリやテンプレートに組み込まれている場合と、コンテナイメージに焼き込んだ node_modules である。すぐ更新できない場合の緩和策はアドバイザリが明示しており、プラグイン登録時に disableCache: true を渡すことでこの挙動を止められる。キャッシュを切る分の性能低下は許容し、更新までの一時措置として入れておくのが現実的である。完了条件は、@fastify/reply-from が 12.6.4 以上になっていること、あるいは暫定として disableCache が有効になっていることを全環境で確認できた時点である。動的に upstream を選ぶ構成で長く動かしていた場合は、アクセスログを見てテナントや upstream の対応が食い違っている応答が過去に無かったかも点検しておく。

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

CVE-2026-16158(@fastify/reply-from)の影響は?

Critical(CVSS 10.0)に分類されるFastify @fastify/reply-fromの脆弱性です。Fastify のリバースプロキシ用プラグイン @fastify/reply-from の 8.3.1 以上 12.6.4 未満で、内部の URL キャッシュのキーを転送先と元のパスを区切り文字なしで連結して作っている。このため転送先とパスの組み合わせが異なるのに同じキーになる場合があり、解決される upstream の URL は別物という状態が起こる。getUpstream がリクエストの内容から転送先を選ぶ構成では、ある upstream 向けにキャッシュされた URL が別の upstream 宛てのリクエストで再利用され、本来アクセスできない upstream に対する読み取りと書き込みが発生する。アドバイザリは既定の構成が影響を受けると明記しており、disableCache を true にするとこの挙動を防げるとしている。修正版は 12.6.4。CVSS は評価元で割れており、NVD(Primary)は 10.0 Critical(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N)、CNA(Secondary)は 8.7 High(AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N)で、キー衝突を狙う難しさを攻撃の複雑度としてどう見るかの差である。CISA KEV には未収載。NVD の vulnStatus は Analyzed。CWE は CWE-441。

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

判定は二段階で見る。まず npm ls @fastify/reply-from やロックファイルで版を確認し、8.3.1 以上 12.6.4 未満なら該当である。次に、自分の使い方が危険側かを切り分ける。この問題が実害になるのはリクエストの内容から転送先を動的に選んでいる構成、つまり getUpstream を使って複数の upstream に振り分けている場合で、転送先が固定のシンプルなプロキシであれば取り違えの余地は小さい。コード中の reply-from の登録箇所(fastify.register の設定、replyFrom の呼び出し、upstream や getUpstream の指定)を検索して、動的に決めている箇所があるかを確認する。マルチテナントのゲートウェイやテナントごとに upstream を切り替える API 前段で使っている場合が最も危険で、テナント間のデータ混線という形で影響が出る。見落としやすいのは、自分で書いたプロキシではなく社内共通のゲートウェイライブラリやテンプレートに組み込まれている場合と、コンテナイメージに焼き込んだ node_modules である。すぐ更新できない場合の緩和策はアドバイザリが明示しており、プラグイン登録時に disableCache: true を渡すことでこの挙動を止められる。キャッシュを切る分の性能低下は許容し、更新までの一時措置として入れておくのが現実的である。完了条件は、@fastify/reply-from が 12.6.4 以上になっていること、あるいは暫定として disableCache が有効になっていることを全環境で確認できた時点である。動的に upstream を選ぶ構成で長く動かしていた場合は、アクセスログを見てテナントや upstream の対応が食い違っている応答が過去に無かったかも点検しておく。

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

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

参考情報(出典)

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

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

« 一覧に戻る