---
id: "CVE-2026-116689"
kind: "vulnerability"
aliases: ["CVE-2026-116689"]
title: "follow-redirects: custom credential headers can leak to cross-origin redirect targets"
severity: "medium"
cvss: 5.9
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["axios", "follow-redirects", "node.js", "npm", "package"]
not_affected_if: ["fixed-version", "no-cross-origin-redirects", "no-sensitiveheaders-option"]
published_at: "2026-10-27T20:17:14+00:00"
first_seen_at: "2026-10-27T20:33:27+00:00"
updated_at: "2026-10-27T20:35:34+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-116689", "first_seen_at": "2026-10-27T20:33:27+00:00"}]
---

# follow-redirects: custom credential headers can leak to cross-origin redirect targets

follow-redirects 1.16.0 through 1.16.2 mishandles the sensitiveHeaders option when the array comes from another JavaScript realm, silently dropping the list. A custom credential header that should be stripped can then be forwarded to an attacker-controlled cross-origin redirect destination.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Run `npm ls follow-redirects` to find every installed copy and its version.
- Check whether application code passes a `sensitiveHeaders` option to follow-redirects, for example in a wrapper around `http` or `https`.

## Fix

- Upgrade follow-redirects to `1.16.2` or later.
- Until upgraded, avoid passing `sensitiveHeaders` arrays created in another realm (such as from a VM context or iframe).

## Timeline

- 2026-10-27T20:33:27+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-116689

## From the sources

follow-redirects is a Node.js HTTP and HTTPS client wrapper that automatically follows redirects. From 1.16.0 until 1.16.2, the documented sensitiveHeaders option is checked with value instanceof Array, so an array created in another JavaScript realm is replaced with an empty list even though Array.isArray recognizes it. When a request then follows an attacker-controlled cross-origin redirect, a custom credential header named in that discarded list can be forwarded to the redirect destination. This issue is fixed in version 1.16.2.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
