CVE-2026-1002
Java vulnerability analysis and mitigation

Overview

CVE-2026-1002 is a cache manipulation vulnerability in the Eclipse Vert.x Web static handler component that allows unauthenticated remote attackers to deny access to static files by sending specially crafted request URIs. The flaw was disclosed on January 15, 2026, and affects Eclipse Vert.x-web versions 4.0.0 through 4.5.23 and 5.0.0 through 5.0.6. Downstream products including IBM Event Processing and IBM watsonx Orchestrate are also affected. It carries a CVSS v3.1 base score of 5.3 (Medium) and a CVSS v4.0 base score of 6.9 (Medium) (Github Advisory, Vert.x PR).

Technical details

The root cause is an improper implementation of rule C in section 5.2.4 of RFC3986 within the HttpUtils#removeDots method (CWE-444 — Inconsistent Interpretation of HTTP Requests). Specifically, when the output buffer does not contain a /, the implementation fails to discard the entire buffer content as required by the RFC, causing percent-encoded path traversal sequences (e.g., bar%2F..%2F) to be resolved incorrectly. An attacker exploits this by sending a crafted URI such as https://example.com/foo/bar%2F..%2Findex.html targeting a file served by the static handler; the malformed path is cached as non-existent, causing all subsequent legitimate requests for that resource to return HTTP 404. No authentication or user interaction is required, and the attack is executable over the network (Github Issue, Vert.x PR).

Impact

Successful exploitation causes a persistent denial-of-service condition for static file access: once a crafted request poisons the StaticHandlerImpl cache, all subsequent legitimate requests for the affected resource return HTTP 404 until the cache is cleared or the service is restarted. This can block access to critical web assets such as stylesheets, JavaScript files, images, and other static resources hosted via Vert.x Web. There is no confidentiality or integrity impact — the vulnerability is limited to availability of static content served through the affected handler (Github Advisory, Github Issue).

Exploitation steps

  1. Reconnaissance: Identify web applications using Eclipse Vert.x Web's StaticHandler component (versions 4.0.0–4.5.23 or 5.0.0–5.0.6) by examining HTTP response headers (e.g., Server headers) or known deployment patterns.
  2. Identify a valid static resource: Send a normal request to confirm a static file is accessible, e.g., curl http://target/foo/index.html — expect HTTP 200.
  3. Craft the poisoning URI: Construct a URI that inserts a percent-encoded path traversal segment (bar%2F..%2F) before the target filename, e.g., http://target/foo/bar%2F..%2Findex.html.
  4. Send the poisoning request: Issue the crafted request: curl 'http://target/foo/bar%2F..%2Findex.html' — the server returns HTTP 404 and caches the path as non-existent.
  5. Verify cache corruption: Re-request the legitimate resource: curl http://target/foo/index.html — the server now returns HTTP 404 due to the poisoned cache entry, denying access to all subsequent legitimate users until the cache is cleared or the service restarts (Github Issue, Vert.x PR).

Indicators of compromise

  • Network: HTTP requests containing percent-encoded path traversal sequences such as %2F..%2F in URI paths targeting static file endpoints (e.g., GET /foo/bar%2F..%2Findex.html).
  • Logs: Web server or Vert.x access logs showing requests with encoded sequences like %2F..%2F followed by HTTP 404 responses for resources that were previously accessible; subsequent legitimate requests to the same resource also returning 404.
  • Application Behavior: Sudden and persistent HTTP 404 errors for static assets (CSS, JS, images) that were previously served correctly, without any file system changes — a strong indicator of cache poisoning rather than missing files (Github Issue).

Mitigation and workarounds

The fix is available in Eclipse Vert.x Core versions 4.5.24 (for the 4.x branch) and 5.0.7 (for the 5.x branch); users should upgrade io.vertx:vertx-core to these versions or later. As an immediate workaround without upgrading, disable the Static Handler cache in application code: StaticHandler staticHandler = StaticHandler.create().setCachingEnabled(false);. IBM has released patches for affected products including IBM Event Processing and IBM watsonx Orchestrate — refer to the respective IBM security bulletins for version-specific guidance (Github Advisory, IBM Event Processing, IBM watsonx).

Community reactions

The vulnerability was quickly picked up by downstream projects including Keycloak, Apache Spark, Eclipse Che, and Gravitee, all of which issued dependency updates to pull in the patched Vert.x Core version. Red Hat issued multiple security advisories (RHSA-2026:3890, RHSA-2026:3951, and others) addressing the vulnerability in their product portfolio. The Quarkus project also released version 3.27.3 incorporating the fix. Community discussion on GitHub was active, with multiple projects filing automated CVE detection issues and tracking remediation (Vert.x PR, IBM Event Processing).

Additional resources


SourceThis report was generated using AI

Related Java vulnerabilities:

CVE ID

Severity

Score

Technologies

Component name

CISA KEV exploit

Has fix

Published date

GHSA-p279-2cqp-84jgCRITICAL9.6
  • Java logoJava
  • org.openidentityplatform.opendj:opendj-server-legacy
NoYesJul 24, 2026
GHSA-fp43-vj7g-pg92HIGH7.5
  • Java logoJava
  • org.omnifaces:omnifaces
NoYesJul 24, 2026
GHSA-7ppr-r889-mcf2HIGH7.5
  • Java logoJava
  • org.http4s:http4s-blaze-server_2.12
NoYesJul 24, 2026
GHSA-mhvj-jhpq-885vHIGH7.4
  • Java logoJava
  • org.http4s:http4s-blaze-server_2.13
NoYesJul 24, 2026
GHSA-46q4-43ph-c6frHIGH7.4
  • Java logoJava
  • org.http4s:blaze-http_2.12
NoYesJul 24, 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