CVE-2026-8384
Jetty vulnerability analysis and mitigation

Overview

CVE-2026-8384 is a path traversal / non-canonical URL authorization bypass vulnerability in Eclipse Jetty. When an HTTP URI contains a semicolon-delimited path segment such as /public;/../admin/secret.txt, Jetty passes the unresolved path /public/../admin/secret.txt to the web application instead of the canonicalized /admin/secret.txt. Affected versions are Eclipse Jetty 12.0.0–12.0.34 and 12.1.0–12.1.8; fixed versions are 12.0.35 and 12.1.9. It carries a CVSS v3.1 base score of 5.3 (Medium) (Eclipse CVE Assignment).

Technical details

The root cause is classified as CWE-647 (Use of Non-Canonical URL Paths for Authorization Decisions): Jetty does not fully resolve path segments that contain semicolons before forwarding the request path to the web application. An attacker crafts an HTTP URI where a semicolon is inserted into a path component (e.g., /public;/../admin/secret.txt), causing the path traversal sequence /../ to survive unresolved into the application layer. Jetty's own alias checker prevents it from serving restricted files directly, so the server itself is not vulnerable; however, web applications that perform access-control decisions based on the raw path string received from Jetty can be deceived into granting access to protected resources. A concrete, reproducible proof-of-concept URI is documented in the official CVE record (Eclipse CVE Assignment).

Impact

The primary impact is an integrity-level authorization bypass (CVSS integrity impact: Low): an unauthenticated remote attacker may circumvent application-level path-based access controls, potentially accessing or manipulating resources that should be restricted. Confidentiality is not directly impacted at the Jetty layer because Jetty's alias checker blocks file serving, but downstream web applications that trust the unresolved path for routing or authorization decisions may inadvertently expose protected endpoints or data. Availability is not affected (Eclipse CVE Assignment).

Exploitation steps

  1. Reconnaissance: Identify web applications running on Eclipse Jetty 12.0.0–12.0.34 or 12.1.0–12.1.8 that perform path-based authorization checks using the request URI provided by Jetty (e.g., via HTTP response headers, error pages, or service fingerprinting).
  2. Craft malicious URI: Construct an HTTP request URI that embeds a semicolon within a permitted path segment followed by a path traversal sequence, for example: GET /public;/../admin/secret.txt HTTP/1.1.
  3. Send request: Transmit the crafted request to the target server. Jetty will parse the URI and forward the unresolved path /public/../admin/secret.txt to the web application rather than the canonicalized /admin/secret.txt.
  4. Bypass authorization: If the web application's access-control logic checks whether the path starts with /public (or another permitted prefix) without normalizing it first, the unresolved path may pass the check, granting access to the protected resource.
  5. Access protected resource: The web application serves or processes the resource at the traversed path (e.g., /admin/secret.txt), completing the authorization bypass (Eclipse CVE Assignment).

Indicators of compromise

  • Network: HTTP requests containing semicolons within path segments combined with /../ traversal sequences (e.g., GET /public;/../admin/ or similar patterns) in web server access logs.
  • Logs: Access log entries where the raw request URI contains ;/.. sequences but the application log records access to a different (protected) resource path; unexpected HTTP 200 responses to requests targeting nominally restricted paths.
  • Application Behavior: Authorization decisions granting access to protected resources (e.g., /admin/) originating from requests whose URI begins with a permitted prefix (e.g., /public) — detectable via application-level audit logging if path normalization is logged (Eclipse CVE Assignment).

Mitigation and workarounds

Upgrade Eclipse Jetty to version 12.0.35 (for the 12.0.x branch) or 12.1.9 (for the 12.1.x branch) to receive the official fix. As a defense-in-depth measure, web applications should implement independent path normalization and canonicalization before performing any authorization decisions, rather than relying solely on the path string provided by the application server. Deploying a WAF rule to reject or normalize HTTP URIs containing semicolons in path segments can also reduce exposure while patching is underway (Eclipse CVE Assignment).

Additional resources


SourceThis report was generated using AI

Related Jetty vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

CVE-2026-2332CRITICAL9.1
  • Java logoJava
  • wso2is
NoYesApr 14, 2026
CVE-2024-7708HIGH7.5
  • Jetty logoJetty
  • jetty
NoYesJul 14, 2026
CVE-2026-10051MEDIUM6.9
  • Jetty logoJetty
  • jetty
NoYesJul 14, 2026
CVE-2026-8384MEDIUM5.3
  • Jetty logoJetty
  • jetty
NoYesJul 14, 2026
CVE-2026-6790MEDIUM5.3
  • Jetty logoJetty
  • jetty9
NoYesJul 14, 2026

Free Vulnerability Assessment

Benchmark your Cloud Security Posture

Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.

Request assessment

Get a personalized demo

Ready to see Wiz in action?

"Best User Experience I have ever seen, provides full visibility to cloud workloads."
David EstlickCISO
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
Adam FletcherChief Security Officer
"We know that if Wiz identifies something as critical, it actually is."
Greg PoniatowskiHead of Threat and Vulnerability Management