Insertion of Sensitive Information into Log File Affecting undici package, versions >=7.0.0 <7.30.2>=8.0.0 <8.12.4


Severity

Recommended
0.0
high
0
10

CVSS assessment by Snyk's Security Team. Learn more

Threat Intelligence

EPSS
0.3% (23rd percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk IDSNYK-JS-UNDICI-22290988
  • published8 Nov 2026
  • disclosed6 Nov 2026
  • creditffasterss, shirabe0x05

Introduced: 6 Nov 2026

NewCVE-2026-120415  (opens in a new tab)
CWE-116  (opens in a new tab)
CWE-532  (opens in a new tab)

How to fix?

Upgrade undici to version 7.30.2, 8.12.4 or higher.

Overview

undici is an An HTTP/1.1 client, written from scratch for Node.js

Affected versions of this package are vulnerable to Insertion of Sensitive Information into Log File via the cleanRequestHeaders function in lib/handler/redirect-handler.js, when request headers are supplied as an array of [name, value] tuples (e.g. via Object.entries(headers)). The redirect interceptor is responsible for stripping sensitive headers such as Authorization, Cookie, Proxy-Authorization, and Host on cross-origin redirects, but it misreads tuple-format headers as a flat alternating [name, value, name, value, ...] list, causing header names to never match the strip list and leaving sensitive headers intact. When a header-normalizing interceptor such as cache() or deduplicate() is composed outside redirect(), it serializes the retained headers onto the cross-origin request, disclosing origin-bound credentials to the redirect destination. This is a representation-dependent bypass of the cross-origin header stripping introduced to address CVE-2024-30260.

Note: This is only exploitable when headers are supplied as an array of [name, value] tuples and a header-normalizing interceptor (cache() or deduplicate()) is composed outside the redirect() interceptor.

Workaround

Supply request headers as a plain object or a flat [name, value, name, value, ...] array rather than an array of [name, value] tuples, or compose the redirect() interceptor outside the normalizing interceptor (cache() or deduplicate()).

CVSS Base Scores

version 4.0
version 3.1