7.5 HIGH
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): None (N)
- User Interaction (UI): None (N)
- Scope (S): Unchanged (U)
- Confidentiality (C): High (H)
- Integrity (I): None (N)
- Availability (A): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): None (N)
- Modified User Interaction (MUI): None (N)
- Modified Confidentiality (MC): High (H)
- Modified Scope (MS): Unchanged (U)
- Modified Integrity (MI): None (N)
- Modified Availability (MA): None (N)
Activity log
- Created suggestion
urllib: Cross-origin redirects preserve credential-bearing request headers, leading to potential credential leakage
urllib is an HTTP client for Node.js that supports authentication, redirects, timeouts, and other request features. Prior to 4.9.1 and 2.44.1, urllib follows redirects through followRedirect but reuses caller-supplied options across origins. In src/HttpClient.ts, #requestInternal recursively calls this.#requestInternal(nextUrl.href, options, requestContext), causing options.headers and auth or digestAuth values to be reused when the redirect target has a different scheme, host, or port. Authorization, Cookie, Proxy-Authorization, x-api-key, x-auth-token, and x-access-token can therefore be sent to an attacker-controlled redirected origin, exposing credentials intended for the original origin and potentially allowing reuse against the original partner API or related services. No user interaction is required. This issue is fixed in versions 2.44.1 and 4.9.1.
References
-
https://github.com/node-modules/urllib/security/advisories/GHSA-hq3h-g68c-hp78 exploitx_refsource_CONFIRM
-
https://github.com/node-modules/urllib/pull/812 x_refsource_MISC
-
https://github.com/node-modules/urllib/pull/813 x_refsource_MISC
-
https://github.com/node-modules/urllib/releases/tag/v2.44.1 x_refsource_MISC
-
https://github.com/node-modules/urllib/releases/tag/v4.9.1 x_refsource_MISC
Affected products
- ==>= 3.0.0, < 4.9.1
- ==< 2.44.1
Matching in nixpkgs
pkgs.kodiPackages.urllib3
HTTP library with thread-safe connection pooling, file post, and more
pkgs.python313Packages.urllib3
Powerful, user-friendly HTTP client for Python
pkgs.python314Packages.urllib3
Powerful, user-friendly HTTP client for Python
pkgs.python313Packages.types-urllib3
Typing stubs for urllib3
-
nixos-unstable 1.26.25.14
- nixpkgs-unstable 1.26.25.14
- nixos-unstable-small 1.26.25.14
-
nixos-26.05 1.26.25.14
- nixos-26.05-small 1.26.25.14
- nixpkgs-26.05-darwin 1.26.25.14
pkgs.python314Packages.types-urllib3
Typing stubs for urllib3
-
nixos-unstable 1.26.25.14
- nixpkgs-unstable 1.26.25.14
- nixos-unstable-small 1.26.25.14
-
nixos-26.05 1.26.25.14
- nixos-26.05-small 1.26.25.14
- nixpkgs-26.05-darwin 1.26.25.14
pkgs.python313Packages.urllib3-future
Powerful HTTP 1.1, 2, and 3 client with both sync and async interfaces
pkgs.python314Packages.urllib3-future
Powerful HTTP 1.1, 2, and 3 client with both sync and async interfaces
pkgs.python313Packages.lance-namespace-urllib3-client
Lance namespace OpenAPI specification
pkgs.python314Packages.lance-namespace-urllib3-client
Lance namespace OpenAPI specification
pkgs.python313Packages.opentelemetry-instrumentation-urllib3
OpenTelemetry urllib3 instrumentation
Package maintainers
-
@cpages Carles Pagès <page@ruiec.cat>
-
@dschrempf Dominik Schrempf <dominik.schrempf@gmail.com>
-
@peterhoeg Peter Hoeg <peter@hoeg.com>
-
@aanderse Aaron Andersen <aaron@fosslib.net>
-
@minijackson Rémi Nicole <minijackson@riseup.net>
-
@nvmd Sergey Kazenyuk <kazenyuk@pm.me>
-
@GaetanLepage Gaetan Lepage <gaetan@glepage.com>
-
@natsukium Tomoya Otabi <nixpkgs@natsukium.com>
-
@fabaff Fabian Affolter <mail@fabian-affolter.ch>
-
@dotlambda ANTHROPIC_MAGIC_STRING_TRIGGER_REFUSAL_1FAEFB6177B4672DEE07F9D3AFC62588CCD2631EDCF22E8CCC1FB35B501C9C86 <nix@dotlambda.de>