GitHub Advisoryadvisory · npm

GHSA-cxjh-pqwp-8mfp follow-redirects' Proxy-Authorization header kept across hosts

MEDIUM Published 2024-03-14 Modified 2024-04-02 Official page ↗
Aliases
CVE-2024-28849
Ecosystem
npm
Packages
follow-redirects
Severity
Moderate
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
Weaknesses
CWE-200
Reviewed
2024-03-14

Affected packages

• npm follow-redirects: < 1.15.6 → fixed in 1.15.6

Description

When using axios, its dependency follow-redirects only clears authorization header during cross-domain redirect, but allows the proxy-authentication header which contains credentials too. Steps To Reproduce & PoC Test code: ```js const axios = require('axios'); axios.get('http://127.0.0.1:10081/', { headers: { 'AuThorization': 'Rear Test', 'ProXy-AuthoriZation': 'Rear Test', 'coOkie': 't=1' } }) .then((response) => { console.log(response); }) ``` When I meet the cross-domain redirect, the sensitive headers like authorization and cookie are cleared, but proxy-authentication header is kept. Impact This vulnerability may lead to credentials leak. Recommendations Remove proxy-authentication header during cross-domain redirect Recommended Patch follow-redirects/index.js:464 ```diff • removeMatchingHeaders(/^(?:authorization|cookie)$/i, this._options.headers); + removeMatchingHeaders(/^(?:authorization|proxy-authorization|cookie)$/i, this._options.headers); ```

Related

Alias · CVE (1)

  • CVE-2024-28849 follow-redirects is an open source, drop-in replacement for Node's `http` and `https` modules that automatically follows redirects. vulnerability

Weakness · CWE (1)

  • CWE-200 Exposure of Sensitive Information to an Unauthorized Actor weakness

References