Credential headers forwarded on cross-origin HTTP redirect in Eclipse Vert.x HttpClient
# CVE Reservation Request <!-- There's help in the Eclipse Foundation Project Handbook https://www.eclipse.org/projects/handbook/#vulnerability-cve Note that this issue is configured (see the quick actions at the bottom) to be created as confidential. Note that a vulnerability does not need to actually be resolved before it is reported and that these reports can be revised as needed (reopen the issue to request changes). If you do not know how to fill certain fields, mark that in the comment and we will help you. You can delete the comments (or not). --> The Eclipse Foundation is a [Common Vulnerabilities and Exposures](https://cve.mitre.org/) (CVE) Numbering Authority. Creating this ticket initiates **reservation** of a CVE ID for the documented vulnerability. The reserved CVE ID will be posted in a comment below, and kept **confidential** until explicit publication request. > [!note] > To request CVE *publication*, please open a [CVE publication](https://gitlab.eclipse.org/security/cve-assignment/-/issues/new?issuable_template=CVE%20Publication%20Request) ticket. Please fill in the fields below to draft the CVE record. --- <!-- Required. Specify the project's name (e.g., "Eclipse Dash") and Eclipse Foundation ID, e.g., "technology.dash". --> ## CVE record information **Project name:** Eclipse Vert.x **Project id:** rt.vertx <!-- Required (for publication). Specify the version range as precisely as possible, e.g., "[3.0, 3.5.1]" or "[3.0, 3.5.1)". Note that using the standard range notion, square brackets are inclusive (i.e., that version is included in the range), and round brakets are exclusive (the vulnerability affects all versions up to but not including the named version). Multiple ranges can be provided. --> **Versions affected:** 5.1.4 and below, 4.5.29 and below Note that 4.5.29 is not published yet, it will be published today or tomorrow, without the fix. <!-- Required (for publication). The Common Weakness Enumeration (CWE) code comes from here: https://cwe.mitre.org/, e.g., "CWE-93: Improper Neutralization of CRLF Sequences ('CRLF Injection')". Multiple codes can be provided. --> **Common Weakness Enumeration (CWE):** - [CWE-200: Exposure of Sensitive Information to an Unauthorized Actor](https://cwe.mitre.org/data/definitions/200.html) - [CWE-346: Origin Validation Error](https://cwe.mitre.org/data/definitions/346.html) <!-- Optional. The Common Attack Pattern Enumerations and Classifications (CAPEC) code comes from here: https://capec.mitre.org/, e.g., "CAPEC-63: Cross-Site Scripting (XSS)". Multiple codes can be provided. --> **Common Attack Pattern Enumerations and Classifications (CAPEC):** - [CAPEC-60: HTTP Response Smuggling](https://capec.mitre.org/data/definitions/60.html) <!-- Optional. Provide a Common Vulnerability Scoring System (CVSS). Note that if you do not provide this, then some agencies (e.g. NIST) will compute it on the project's behalf. Please be sure to include the CVSS version number, e.g., "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:H/SI:H/SA:H". There's help here: https://www.first.org/cvss/calculator/4.0 --> **Common Vulnerability Scoring System:** {[cvss](https://www.first.org/cvss/calculator/4.0)} - CVSS v3.1: `CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N` — **7.5 High** - CVSS v4.0: `CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N` — **8.2 High** <!-- Required (for publication). The summary should start with the name of the project, e.g., "Eclipse Vert.x", then a description of the affected versions, followed by a description of the problem. The summary should be concise. For example, "In Eclipse Vert.x version 3.0 to 3.5.1, the HttpServer response headers and HttpClient request headers do not filter carriage return and line feed characters from the header value. This allow unfiltered values to inject a new header in the client request or server response." --> **Summary:** In Eclipse Vert.x versions up to and including 4.5.29 (4.x branch) and 5.1.4 (5.x branch), `DefaultRedirectHandler` (vertx-core) propagates all request headers as-is across cross-origin HTTP 30x redirects. Only `Content-Length` is stripped; no origin comparison (scheme, host, port) is performed before copying headers to the redirect target. As a result, credential headers, including `Authorization`, `Cookie`, `Proxy-Authorization`, and arbitrary custom headers such as `X-API-Token`, are forwarded to the redirect destination without the caller's knowledge. An attacker who can cause a Vert.x `HttpClient` to issue a request that is redirected to an attacker-controlled host (for example, by supplying a URL to a webhook dispatcher, image proxy, or microservice URL fetcher) can capture bearer tokens, basic-auth credentials, session cookies, and API keys attached to the original request. **Links:** - https://github.com/eclipse-vertx/vert.x-ghsa-5x9c-p4p5-8v9w We plan to release the fixed version early next week. <!-- Optional. Add the name or pseudonym of the person who has reported the issue. --> **Credits:** Kairo de Araujo <!-- Quick actions will configure the state of the issue. Leave these. --> <!-- Keep this as the last line -->
issue

Copyright © Eclipse Foundation AISBL. All rights reserved.     Privacy Policy | Terms of Use | Copyright Agent