Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:L/A:N
Network-reachable, low-complexity credential disclosure needing no privileges but requiring the client to make a redirected request (UI:R); impact is pure confidentiality so I and A are N.
Primary rating from Vendor (CPANSec).
CVSS VectorVendor: CPANSec
Lifecycle Timeline
3DescriptionCVE.org
HTTP::Tiny versions before 0.095 for Perl forward credential headers to cross-origin redirect targets.
When the server returns a 3xx redirect, _maybe_redirect follows the Location: header and _prepare_headers_and_cb re-merges the caller's headers argument into the new request, without checking whether the redirect target shares an origin with the original URL. Caller-supplied Authorization, Cookie and Proxy-Authorization headers are therefore re-sent to whatever host the redirect names, across scheme, host or port boundaries, and including https to http downgrades that expose them in plaintext on the wire.
The HTTP::Tiny POD note that "Authorization headers will not be included in a redirected request" applied only to the URL-userinfo Basic-auth path, not to headers passed explicitly by the caller.
AnalysisAI
Credential leakage in the Perl HTTP::Tiny client (all versions before 0.095) lets an attacker who controls a redirect destination harvest sensitive headers. When a server answers with a 3xx redirect, HTTP::Tiny re-sends caller-supplied Authorization, Cookie and Proxy-Authorization headers to the new host without verifying it shares the original origin, including across scheme, host or port boundaries and over https-to-http downgrades that expose them in cleartext on the wire. No public exploit is identified at time of analysis and CISA SSVC rates exploitation as none, but the flaw is well-documented and a vendor patch is available in 0.095.
Technical ContextAI
HTTP::Tiny is a small, dependency-free HTTP/1.1 user agent that ships with Perl core and underlies much of the CPAN toolchain and countless scripts. The defect is in its redirect-following logic: _maybe_redirect follows the Location: header on a 3xx response, and _prepare_headers_and_cb re-merges the caller's original headers hash into the follow-up request with no same-origin check. The module's POD claimed 'Authorization headers will not be included in a redirected request,' but that stripping only ever applied to Basic-auth credentials parsed from the URL userinfo, not to headers the caller passed explicitly. This maps to CWE-522 (Insufficiently Protected Credentials): secrets intended for one origin are transmitted to an unrelated origin, and the affected component is precisely cpe:2.3:a:haarg:http::tiny.
RemediationAI
Vendor-released patch: upgrade HTTP::Tiny to 0.095 (initially published as the 0.095-TRIAL release at https://metacpan.org/release/HAARG/HTTP-Tiny-0.095-TRIAL/changes); the fixes are in commits 84984ef3, e7a03aed and 8f32ca89 (PR https://github.com/Perl-Toolchain-Gang/HTTP-Tiny/pull/36). If you cannot upgrade immediately, the most effective compensating control is to disable automatic redirect following by setting max_redirect => 0 on the client, then inspect the Location header and re-issue the request yourself only when the target origin matches - the trade-off is that legitimate redirect-based workflows break and must be handled manually. Alternatively, stop passing Authorization, Cookie and Proxy-Authorization via the explicit headers argument for requests that may redirect, or attach credential headers only after confirming the final resolved host, which adds application complexity. Also avoid non-TLS (http) endpoints for authenticated calls to prevent downgrade exposure. See the coordinated advisory at https://seclists.org/oss-sec/2026/q3/87 and https://vuldb.com/vuln/376670.
Denial of service against HTTP/2 server implementations allows remote unauthenticated attackers to exhaust server resour
An issue was discovered in the http crate before 0.1.20 for Rust. Rated high severity (CVSS 7.5), this vulnerability is
An issue was discovered in the http package through 0.12.2 for Dart. Rated medium severity (CVSS 6.1), this vulnerabilit
HTTP::Session versions through 0.53 for Perl defaults to using insecurely generated session ids.
HTTP::Tiny versions before 0.093 for Perl fail to validate carriage return and line feed (CRLF) characters in HTTP reque
HTTP::Session2 versions through 1.09 for Perl does not validate the format of user provided session ids, enabling code i
react/http is an event-driven, streaming HTTP client and server implementation for ReactPHP. Rated medium severity (CVSS
ReactPHP HTTP is a streaming HTTP client and server implementation for ReactPHP. Rated medium severity (CVSS 5.3), this
Same weakness CWE-522 – Insufficiently Protected Credentials
View allSame technique Information Disclosure
View allVendor StatusVendor
SUSE
Severity: Important| Product | Status |
|---|---|
| openSUSE Tumbleweed | Fixed |
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-42072
GHSA-pgc4-5jjm-7rr7