Monitor vulnerabilities like this one. Sign up free to get alerted when software you use is affected.
7.8

Axios Leaks Custom Authentication Headers to Cross-Domain Redirect Targets

GHSA-r4q5-vmmm-2653
Summary

If you use Axios to send requests to a server and that server redirects you to a different site, sensitive information like API keys or authentication tokens may be sent to the new site. This is a security risk because it allows an attacker to capture those credentials. To stay safe, you should update Axios to the latest version, which includes a fix for this issue.

What to do
  • Update rubenverborgh follow-redirects to version 1.16.0.
Affected software
VendorProductAffected versionsFix available
rubenverborgh follow-redirects <= 1.16.0 1.16.0
Original title
follow-redirects leaks Custom Authentication Headers to Cross-Domain Redirect Targets
Original description
## Summary

When an HTTP request follows a cross-domain redirect (301/302/307/308), `follow-redirects` only strips `authorization`, `proxy-authorization`, and `cookie` headers (matched by regex at index.js:469-476). Any custom authentication header (e.g., `X-API-Key`, `X-Auth-Token`, `Api-Key`, `Token`) is forwarded verbatim to the redirect target.

Since `follow-redirects` is the redirect-handling dependency for **axios** (105K+ stars), this vulnerability affects the entire axios ecosystem.

## Affected Code

`index.js`, lines 469-476:

```javascript
if (redirectUrl.protocol !== currentUrlParts.protocol &&
redirectUrl.protocol !== "https:" ||
redirectUrl.host !== currentHost &&
!isSubdomain(redirectUrl.host, currentHost)) {
removeMatchingHeaders(/^(?:(?:proxy-)?authorization|cookie)$/i, this._options.headers);
}
```

The regex only matches `authorization`, `proxy-authorization`, and `cookie`. Custom headers like `X-API-Key` are not matched.

## Attack Scenario

1. App uses axios with custom auth header: `headers: { 'X-API-Key': 'sk-live-secret123' }`
2. Server returns `302 Location: https://evil.com/steal`
3. follow-redirects sends `X-API-Key: sk-live-secret123` to `evil.com`
4. Attacker captures the API key

## Impact

Any custom auth header set via axios leaks on cross-domain redirect. Extremely common pattern. Affects all axios users in Node.js.

## Suggested Fix

Add a `sensitiveHeaders` option that users can extend, or strip ALL non-standard headers on cross-domain redirect.

## Disclosure

Source code review, manually verified. Found 2026-03-20.
osv CVSS4.0 7.8
Vulnerability type
CWE-200 Information Exposure
Published: 14 Apr 2026 · Updated: 14 Apr 2026 · First seen: 14 Apr 2026