hapijs/wreck · Security
@hapi/wreck: Sensitive credential headers leak across cross-port and cross-scheme redirects
- GHSA ID
- GHSA-x426-x7cc-3fpc
- CVE ID
- CVE-2026-48022
- Severity
- medium
- Published
- Updated
- CVSS
- 6.5 · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
- CVSS v3
- 6.5 · CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N
Description
Impact
Wreck strips credential headers (Authorization, Cookie, Proxy-Authorization) before following a cross-origin redirect, but the origin check compares hostnames only and ignores scheme and port. As a result, credentials are forwarded intact across same-host port changes and HTTPS-to-HTTP downgrades, allowing a co-tenant on an adjacent port or a network-position attacker capable of forging a redirect to capture bearer tokens, session cookies, and proxy credentials and impersonate the victim against the upstream service. The fix replaces the hostname comparison with a full-origin comparison (scheme, host, and port), aligning the behavior with the WHATWG Fetch same-origin definition used by browsers.
Patches
Upgrade to >= 18.1.2.
Workarounds
- Set
redirects: 0(default) and handle redirects manually with a strict origin check. - Use the
beforeRedirecthook to inspect the redirect target and abort or strip sensitive headers before the follow-on request.
CWEs
- CWE-200 · Exposure of Sensitive Information to an Unauthorized Actor
- CWE-319 · Cleartext Transmission of Sensitive Information
- CWE-346 · Origin Validation Error
- CWE-522 · Insufficiently Protected Credentials
- CWE-940 · Improper Verification of Source of a Communication Channel