脆弱性・CVE速報深刻度: 高

follow-redirects に脆弱性(CVE-2026-116689): 別の実行環境で作った sensitiveHeaders が無視され、独自の認証ヘッダーが別ホストへのリダイレクトに付いたまま送られる恐れ

目次(5)

CVE-2026-116689

npm の follow-redirects(リダイレクトを自動でたどる HTTP クライアント用ライブラリ)に、2026 年 10 月 30 日(UTC)に脆弱性 CVE-2026-116689 が公開されました。GitHub Advisory の深刻度は High、CVSS は v3.1 が 5.9(AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:N/A:N)、v4.0 が 8.2、CWE-201 です。sensitiveHeaders に指定した独自の認証ヘッダー(例: X-API-Key)が、別のホストへのリダイレクト先に付いたまま送られる場合があります。CISA の KEV には載っていません。EPSS は 0.27%(10/30 時点)です。

何が起きるか

  • follow-redirects 1.16.0 で、別ホストへのリダイレクト時に外すヘッダーを指定する sensitiveHeaders オプションが加わりました。Authorization、Proxy-Authorization、Cookie は、このオプションに関係なく標準で保護されます。
  • 内部の判定が value instanceof Array だったため、別の JavaScript 実行環境(Node.js の vm で作る別コンテキストなど)で作られた配列は、配列と見なされず、空のリストに置き換えられていました。
  • 結果として、呼び出し側が sensitiveHeaders に独自の認証ヘッダーを書いていても、その指定が捨てられ、攻撃者が用意した別オリジンのリダイレクト先にヘッダーの値が届きます。同じ実行環境で作った配列では起きません。
  • 勧告は、X-Harmless のような無関係なヘッダーは両方のケースでそのまま残ることも確認しています。

悪用の条件

勧告が挙げる条件は 3 つです。

  1. 呼び出し側(またはそれを包むラッパー)が、別の実行環境で作った sensitiveHeaders 配列をそのまま渡していること。
  2. その配列に、独自の認証ヘッダー名が入っていること。
  3. 攻撃者が管理する、または侵害された接続先が、別オリジンへのリダイレクトを返すこと。

実際に確かめられた結果は、独自ヘッダーの値の漏えいです(API キーやサービストークンなど)。勧告によると、Axios 1.20.0 と follow-redirects 1.16.1 の組み合わせでは、Axios が配列を正規化するため再現しませんでした。Axios が影響を受けるとは書かれていません。

影響を受ける版と修正

  • 勧告の影響範囲は 1.16.0 以上 1.16.1 以下、修正版は 1.16.2 です。sensitiveHeaders は 1.16.0 で導入されたため、それより前の版は対象外です。
  • 修正は instanceof Array を Array.isArray() に置き換えるもので、リポジトリのコミットは 10 月 25 日 21:25(UTC)です。
  • npm の 1.16.2 は 10 月 25 日 21:32(UTC)に公開されています。公開された 1.16.2 の gitHead はこのコミットの 1 つ後で、配布物の index.js にも Array.isArray(options.sensitiveHeaders) が入っていることを確かめました。つまり、1.16.2 に修正は含まれています。

対応

  1. npm ls follow-redirects で、使っている版を確認します。直接の依存だけでなく、HTTP クライアント経由の間接利用も含みます。
  2. 1.16.0 または 1.16.1 なら、1.16.2 以降へ更新します。
  3. 更新までの間は、sensitiveHeaders に渡す配列を、そのまま渡さずに自分の実行環境で作り直すか、独自の認証ヘッダーを別オリジンへのリクエストに付けない運用にします。
  4. 独自の認証ヘッダーを使っていて、信頼できない接続先へリダイレクトされた可能性がある場合は、そのキーやトークンの更新を検討します。

未確認の点

  • NVD の記載は確認できていません(公開直後)。
  • 悪用の報告は見つかっていません(KEV 掲載なし、EPSS は低い水準)。
  • 勧告の検証は手元のループバック環境で行われたもので、実在のサービスへの試験は行っていないと書かれています。同種の報告が既にある可能性にも触れています。

この記事について

出典

この記事を共有