情報取得日: 2026/07/18/最終確認: 2026/08/10・本ページは公開情報の非公式まとめです
| CVE ID | CVE-2026-15631 |
|---|---|
| 製品 | Fastify / @fastify/http-proxy |
| CVSS | 8.7(High) CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N |
| 種別 (CWE) | CWE-22 パス・トラバーサル |
| 登録/公開日 | 2026/07/18 |
| 出典 | https://nvd.nist.gov/vuln/detail/CVE-2026-15631 |
Node.js のフレームワーク Fastify のプロキシプラグイン @fastify/http-proxy に、WebSocket の経路だけ経由するパストラバーサルがある。NVD の記述によれば、9.4.0 から 11.5.0 までのバージョンは、解決後の WebSocket 宛先パスを、設定した rewrite プレフィックスに対して検証していない。WebSocketProxy.findUpstream は WHATWG URL コンストラクタで宛先を解決するが、これはドットセグメント(.. など)を畳み込むため、パストラバーサル列を含む upgrade リクエストを作ると rewrite プレフィックスの外へ抜け、プロキシが公開するつもりのなかった上流エンドポイントへ到達できる。これは CVE-2021-21322 の変種で、HTTP 側の修正が入らなかったコードパスに残っていた。悪用には、リクエストパスを正規化しない WebSocket クライアントが必要である。ブラウザと ws パッケージは送信前に正規化するため、生の HTTP クライアントや、リクエストターゲットをそのまま転送する下流プロキシが経路にある構成が対象になる。CVSS 3.1 基本値は 8.7(High)で、ベクタは AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N。AC:H(攻撃条件が複雑)は、この「正規化しないクライアントが要る」という前提を反映している。修正は 11.6.0 で行われた。回避策は無い。2026年8月14日時点で CISA KEV カタログには収載されていない。
各ベンダー公式アドバイザリで確認できた事実に基づき整理しています。確認できていない項目は「情報確認中」と明記し、存在しないパッチ番号・バージョンは記載しません。
| 環境 | 対応状況 | 対応方法・備考 |
|---|---|---|
| AWS (ECS/EC2) | パッチあり(アプリ更新) |
@fastify/http-proxy を 11.6.0 以上へ更新して再デプロイする
Lambda / ECS / EC2 のいずれで動かしていても、修正はアプリ側の依存更新になる。AWS 側からの修正提供はない。
参照リンク
|
| GCP | パッチあり(アプリ更新) |
@fastify/http-proxy を 11.6.0 以上へ更新して再デプロイする
Cloud Run / GKE いずれもイメージの再ビルドが必要。GCP 固有の修正提供はない。
参照リンク
|
| Azure | パッチあり(アプリ更新) |
@fastify/http-proxy を 11.6.0 以上へ更新して再デプロイする
App Service / AKS いずれも依存の更新が必要。Azure 固有の修正提供はない。
参照リンク
|
| Linux | パッチあり(アプリ更新) |
npm / pnpm / yarn で @fastify/http-proxy を 11.6.0 以上へ上げる
ディストリのパッケージ管理の対象外。ロックファイルを更新して再インストールする。
参照リンク
|
まず該当するかを package-lock.json か pnpm-lock.yaml で判定する。@fastify/http-proxy が 9.4.0 以上 11.5.0 以下なら影響を受ける。WebSocket のプロキシを使っていない場合でも、プラグインを読み込んでいれば該当バージョンの入れ替えは行う。対応は 11.6.0 以上への更新だけで、公式に回避策は示されていない。すぐに更新できない場合の実務的な緩和は、プロキシの前段でパスを正規化することである。前段に nginx や CDN があるなら、そこで .. を含む upgrade リクエストを落とすか正規化する。AC:H の条件が「正規化しないクライアント」である以上、経路のどこかで正規化されれば攻撃は成立しない。ただしこれは前段の実装に依存する緩和なので、恒久対応にはしない。侵害の確認は、アクセスログの upgrade リクエストで %2e や .. を含むパスを検索する。同じコードベースで @fastify/reply-from も使っているなら、CVE-2026-16158(URLキャッシュのキー衝突)も併せて確認する。
High(CVSS 8.7)に分類されるFastify @fastify/http-proxyの脆弱性です。Node.js のフレームワーク Fastify のプロキシプラグイン @fastify/http-proxy に、WebSocket の経路だけ経由するパストラバーサルがある。NVD の記述によれば、9.4.0 から 11.5.0 までのバージョンは、解決後の WebSocket 宛先パスを、設定した rewrite プレフィックスに対して検証していない。WebSocketProxy.findUpstream は WHATWG URL コンストラクタで宛先を解決するが、これはドットセグメント(.. など)を畳み込むため、パストラバーサル列を含む upgrade リクエストを作ると rewrite プレフィックスの外へ抜け、プロキシが公開するつもりのなかった上流エンドポイントへ到達できる。これは CVE-2021-21322 の変種で、HTTP 側の修正が入らなかったコードパスに残っていた。悪用には、リクエストパスを正規化しない WebSocket クライアントが必要である。ブラウザと ws パッケージは送信前に正規化するため、生の HTTP クライアントや、リクエストターゲットをそのまま転送する下流プロキシが経路にある構成が対象になる。CVSS 3.1 基本値は 8.7(High)で、ベクタは AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:H/A:N。AC:H(攻撃条件が複雑)は、この「正規化しないクライアントが要る」という前提を反映している。修正は 11.6.0 で行われた。回避策は無い。2026年8月14日時点で CISA KEV カタログには収載されていない。
まず該当するかを package-lock.json か pnpm-lock.yaml で判定する。@fastify/http-proxy が 9.4.0 以上 11.5.0 以下なら影響を受ける。WebSocket のプロキシを使っていない場合でも、プラグインを読み込んでいれば該当バージョンの入れ替えは行う。対応は 11.6.0 以上への更新だけで、公式に回避策は示されていない。すぐに更新できない場合の実務的な緩和は、プロキシの前段でパスを正規化することである。前段に nginx や CDN があるなら、そこで .. を含む upgrade リクエストを落とすか正規化する。AC:H の条件が「正規化しないクライアント」である以上、経路のどこかで正規化されれば攻撃は成立しない。ただしこれは前段の実装に依存する緩和なので、恒久対応にはしない。侵害の確認は、アクセスログの upgrade リクエストで %2e や .. を含むパスを検索する。同じコードベースで @fastify/reply-from も使っているなら、CVE-2026-16158(URLキャッシュのキー衝突)も併せて確認する。
Fastify @fastify/http-proxy を利用している場合、稼働バージョンが影響範囲に含まれるかを一次情報(https://nvd.nist.gov/vuln/detail/CVE-2026-15631)で確認してください。AWS・GCP・Azure・Linux それぞれの対応状況は本ページの「クラウド/OS 別の対応状況」表にまとめています。確認できていない項目は「情報確認中」と明記しており、存在しないパッチ番号・バージョンは記載していません。
本ページの記載は下記の一次情報に基づく非公式まとめです。数値・対応状況は各出典元で最終確認してください(最終確認: 2026/08/10)。