Severity by source
AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N
Network-reachable with no authentication; integrity impact limited to application path confusion, no confidentiality or availability impact since Jetty's alias checker blocks direct file serving.
Primary rating from Vendor (eclipse).
CVSS VectorVendor: eclipse
Lifecycle Timeline
1Blast Radius
ecosystem impact- 175 maven packages depend on org.eclipse.jetty:jetty-util (33 direct, 142 indirect)
Ecosystem-wide dependent count for version 12.0.0.
DescriptionCVE.org
In Eclipse Jetty, an HTTP URI of this form:
/public;/../admin/secret.txt
results in an unresolved path of:
/public/../admin/secret.txt
instead of the expected:
/admin/secret.txt
Jetty itself is not affected, as it will not serve the secret.txt file because it will not pass the alias checker (only resolved resources are served).
However, web applications that rely on resolved paths being provided by Jetty may be confused when receiving an unresolved path.
AnalysisAI
Eclipse Jetty mishandles HTTP URI path parameters containing semicolons combined with traversal sequences, delivering an unresolved path (e.g., /public/../admin/secret.txt) to downstream web applications instead of the canonicalized form (e.g., /admin/secret.txt). Web applications that delegate path-based authorization decisions to Jetty-provided paths are susceptible to confusion attacks where an attacker crafts a URI like /public;/../admin/secret.txt to receive a path that bypasses application-layer access controls. Jetty itself is shielded by its alias checker and will not serve restricted files directly; the integrity risk materializes only in applications that consume the unresolved path for routing or authorization logic. No public exploit code or CISA KEV listing is present at time of analysis.
Technical ContextAI
Eclipse Jetty (CPE: cpe:2.3:a:eclipse_foundation:eclipse_jetty:*:*:*:*:*:*:*:*) implements the Servlet specification and handles URI path parameters - segments appearing after a semicolon (;) within a path component. When a URI such as /public;/../admin/secret.txt is parsed, the segment public;/.. is treated as a path component with an attached parameter, causing the traversal resolution to yield an unresolved intermediate path before Jetty's alias checker can normalize it. The alias checker correctly blocks serving the traversed resource, but Jetty still exposes the unresolved string to the hosted web application via request path APIs. CWE-647 (Use of Non-Canonical URL Paths for Authorization Decisions) precisely describes the root cause: authorization or routing logic operating on a non-canonical path form is vulnerable to bypass when the canonical form differs. The vulnerability is architectural - it arises when application code trusts HttpServletRequest.getPathInfo() or equivalent APIs without independently normalizing the path.
RemediationAI
No vendor-released patch version is independently confirmed from the available data; the only reference is the Eclipse GitLab work item at https://gitlab.eclipse.org/security/cve-assignment/-/work_items/108, which should be monitored for patch release. As a primary compensating control, web applications hosted on Jetty must independently normalize and canonicalize all incoming request paths before performing authorization or routing decisions - do not rely solely on the path string provided by Jetty APIs. Specifically, apply java.nio.file.Path.normalize() or equivalent URI normalization to the raw request URI before evaluating access rules; this eliminates traversal sequences regardless of how Jetty parsed them. A secondary control is to deploy a reverse proxy (e.g., nginx or Apache httpd) upstream of Jetty that performs URI normalization and rejects requests containing semicolons in path components or multiple consecutive traversal sequences before they reach Jetty. Note: blocking semicolons globally may break applications that intentionally use matrix parameters and requires application-specific testing. Access to administrative endpoints should also be restricted at the network layer to reduce exposure until a patch is available.
More in Eclipse Jetty
View allHTTP request smuggling in Eclipse Jetty's HTTP/1.1 parser lets remote unauthenticated attackers desynchronize front-end/
Unauthenticated remote denial-of-service in Eclipse Jetty's WebSocket implementation allows any network-accessible clien
HTTP/2 thread-exhaustion denial-of-service in Eclipse Jetty allows unauthenticated remote clients to permanently block a
HTTP/1.1 request smuggling in Eclipse Jetty allows unauthenticated remote attackers to desynchronize request boundary pa
Privilege escalation in Eclipse Jetty 9.4.0-12.1.7 allows unauthenticated remote attackers to bypass authentication via
HTTP/1.1 trailer leakage in Eclipse Jetty allows a remote unauthenticated attacker to read trailer headers from a previo
Eclipse Jetty fails to enforce RFC 9110/9112's requirement that the HTTP request authority (host and port) match the val
Same technique Information Disclosure
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-43647
GHSA-w7x5-g22v-xqhr