Security advisory
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-15075
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 04:44 UTC · Revision 1
Source evidence
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.
osv:CVE-2026-15075
Complete source record
{
"id": "300ea03d24f939b417a64f59771d1054e696f9895969c7ff3984d969dc7fa98d",
"url": "https://osv.dev/vulnerability/CVE-2026-15075",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CVE-2026-15075",
"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.",
"evidence": "osv:CVE-2026-15075",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2026-15075",
"aliases": [
"CVE-2026-15075"
],
"metrics": [
{
"type": "CVSS_V4",
"score": "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"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/eclipse-vertx/vert.x",
"type": "GIT",
"events": [
{
"introduced": "60a85baf9138c1cf7e816587d9f59a70ed55bcf3"
},
{
"last_affected": "b7545753dacac2add45c443574a5d1de13e2e805"
},
{
"introduced": "6feb3f329729d6c78f6544b542b1668a3e9f6704"
},
{
"last_affected": "753360696b3cbb3b6848a03f07a84f07f045da96"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "4.0.0"
},
{
"last_affected": "4.5.29"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
},
{
"range": [
{
"introduced": "5.0.0"
},
{
"last_affected": "5.1.4"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StandardRange"
}
]
}
},
{
"repo": "https://github.com/eclipse-vertx/vertx-sql-client",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"last_affected": "c23914207af64b99053ce04c0f9b007a7f649d13"
},
{
"introduced": "6837af793026a2fba5b6b32e0161fce6d9c8b691"
},
{
"last_affected": "ec35cea62d747e569d3f9b85f421c28df839bf0f"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:eclipse:vert.x:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"last_affected": "4.5.29"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:eclipse:vert.x:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "5.0.0"
},
{
"last_affected": "5.1.4"
}
],
"source": "CPE_RANGE"
}
]
}
},
{
"repo": "https://github.com/vert-x3/vertx-web",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"last_affected": "0dc2b837dfb99d8a179fafb1b348a4843ab00e3d"
},
{
"introduced": "a62720242d2f515969aa34dd185d870b846be5e1"
},
{
"last_affected": "c248720fd671d3d33a57ce72c37603989ccd2efc"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:eclipse:vert.x:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "0"
},
{
"last_affected": "4.5.29"
}
],
"source": "CPE_RANGE"
},
{
"cpe": "cpe:2.3:a:eclipse:vert.x:*:*:*:*:*:*:*:*",
"range": [
{
"introduced": "5.0.0"
},
{
"last_affected": "5.1.4"
}
],
"source": "CPE_RANGE"
}
]
}
}
],
"versions": [
"4.5.29",
"5.1.4",
"5.1.3",
"5.1.2",
"4.5.28",
"5.1.1",
"5.1.0",
"4.5.27",
"4.5.26",
"4.5.25",
"4.5.24",
"4.5.23",
"4.5.22",
"4.5.21",
"4.5.20",
"4.5.19",
"4.5.18",
"4.5.17",
"4.5.16",
"4.5.15",
"5.0.0",
"4.5.14",
"4.5.13",
"4.5.12",
"4.5.11",
"4.5.10",
"4.5.9",
"4.5.8",
"4.5.7",
"4.5.6",
"4.5.5",
"4.5.4",
"4.5.3",
"4.5.2",
"4.5.1",
"4.5.0",
"4.4.5",
"4.4.4",
"4.4.3",
"4.4.2",
"4.4.1",
"4.4.0",
"4.3.5",
"4.3.4",
"4.3.3",
"4.3.2",
"4.3.1",
"4.3.0",
"4.2.5",
"4.2.4",
"4.2.3",
"4.2.2",
"4.2.1",
"4.2.0",
"4.2.0.CR1",
"4.2.0.Beta1",
"4.1.1",
"4.1.0",
"4.1.0.CR2",
"4.1.0.CR1",
"4.1.0.Beta1",
"4.0.3",
"4.0.2",
"4.0.1",
"4.0.0",
"4.0.0.CR2",
"4.0.0.CR1",
"4.0.0.Beta3",
"4.0.0.Beta2",
"4.0.0.Beta1",
"4.0.0-milestone5",
"4.0.0-milestone4",
"4.0.0-milestone3",
"4.0.0-milestone2",
"4.0.0-milestone1",
"3.8.0",
"3.6.0",
"3.6.0.CR2",
"3.6.0.CR1",
"3.5.1",
"3.5.0",
"3.4.2",
"3.4.1",
"3.4.0",
"3.4.0.Beta1",
"3.3.3",
"3.3.2",
"3.3.1",
"3.3.0",
"3.3.0.CR2",
"3.2.1",
"3.2.0",
"3.1.0",
"3.0.0",
"3.0.0-milestone6",
"3.0.0-milestone5",
"3.0.0-milestone4",
"3.0.0-milestone3",
"3.0.0-milestone2"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-15075.json"
}
}
],
"modified": "2026-10-28T02:30:25.879246950Z",
"provider": "osv",
"references": [
"https://gitlab.eclipse.org/security/cve-assignment/-/work_items/161",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/15xxx/CVE-2026-15075.json",
"https://nvd.nist.gov/vuln/detail/CVE-2026-15075",
"https://github.com/eclipse-vertx/vert.x"
],
"provider_metadata": {
"cwe_ids": [
"CWE-200",
"CWE-346"
],
"cna_assigner": "eclipse",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/15xxx/CVE-2026-15075.json"
}
},
"related_cves": [
{
"value": "CVE-2026-15075",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 492568,
"published_at": "2026-07-14T08:15:53.65+00:00"
}