Update io.vertx:4.3.5 [SECURITY]#64
Closed
dwertent wants to merge 1 commit into
Closed
Conversation
There was a problem hiding this comment.
Pull request overview
Updates the centrally managed Vert.x dependency versions in gradle/versions.gradle as part of a Renovate security/dependency bump for Vert.x components used across the project.
Changes:
- Bumped the
io.vertxdependency set version from4.3.5to4.4.0(affectingvertx-core,vertx-web,vertx-web-client, etc.).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| dependency 'io.reactivex.rxjava2:rxjava:2.2.21' | ||
|
|
||
| dependencySet(group: 'io.vertx', version: '4.3.5') { | ||
| dependencySet(group: 'io.vertx', version: '4.4.0') { |
Author
|
Closing: opened during a CVE-remediation test session on 2026-06-15; not needed (superseded by consolidated grouped/direct-only/severity-filtered config). Sorry for the noise. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
4.3.5→4.5.224.3.5→4.4.0StaticHandler disclosure of classpath resources on Windows when mounted on a wildcard route
CVE-2023-24815 / GHSA-53jx-vvf9-4x38
More information
Details
Summary
When running vertx web applications that serve files using
StaticHandleron Windows Operating Systems and Windows File Systems, if the mount point is a wildcard (*) then an attacker can exfiltrate any class path resource.Details
When computing the relative path to locate the resource, in case of wildcards, the code:
https://github.com/vert-x3/vertx-web/blob/62c0d66fa1c179ae6a4d57344631679a2b97e60f/vertx-web/src/main/java/io/vertx/ext/web/impl/Utils.java#L83
returns the user input (without validation) as the segment to lookup. Even though checks are performed to avoid escaping the sandbox, given that the input was not sanitized
\are not properly handled and an attacker can build a path that is valid within the classpath.PoC
https://github.com/adrien-aubert-drovio/vertx-statichandler-windows-traversal-path-vulnerability
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Vert.x-Web vulnerable to Stored Cross-site Scripting in directory listings via file names
CVE-2025-11966 / GHSA-45p5-v273-3qqr
More information
Details
Description
StaticHandlerImpl#sendDirectoryListing(...)method under thetext/htmlbranch, file and directory names are directly embedded into thehref,title, and link text without proper HTML escaping.vertx-web/src/main/java/io/vertx/ext/web/handler/impl/StaticHandlerImpl.javanormalizedDiris constructed without escaping<li><a ...>elements insert file names directly into attributes and body without escaping{directory},{parent}, and{files}are inserted into the HTML template without escapingReproduction Steps
Prerequisites:
StaticHandler(e.g.,
StaticHandler.create("public").setDirectoryListing(true))Create a malicious file name (example for Unix-based OS):
public/with one of the following names:<img src=x onerror=alert('XSS')>.txtevil" onmouseover="alert('XSS')".txtStart the server (example):
router.route("/public/*").handler(StaticHandler.create("public").setDirectoryListing(true));vertx.createHttpServer().requestHandler(router).listen(8890);Verification request (raw HTTP):
Example response excerpt:
/public/in a browser, the unescaped file name is interpreted as HTML, and event handlers such asonerrorare executed.Potential Impact
Stored XSS
Common Conditions That Make Exploitation Easier
Similar CVEs Previously Reported
Severity
CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Vert.x-Web Access Control Flaw in StaticHandler’s Hidden File Protection for Files Under Hidden Directories
CVE-2025-11965 / GHSA-h5fg-jpgr-rv9c
More information
Details
Description
There is a flaw in the hidden file protection feature of Vert.x Web’s
StaticHandlerwhensetIncludeHidden(false)is configured.In the current implementation, only files whose final path segment (i.e., the file name) begins with a dot (
.) are treated as “hidden” and are blocked from being served. However, this logic fails in the following cases:/.secret/config.txt— although.secretis a hidden directory, the fileconfig.txtitself does not start with a dot, so it gets served..git,.env,.awsmay become publicly accessible.As a result, the behavior does not meet the expectations set by the
includeHidden=falseconfiguration, which should ideally protect all hidden files and directories. This gap may lead to unintended exposure of sensitive information.Steps to Reproduce
Potential Impact
1. Information Disclosure
Examples of sensitive files that could be exposed:
.git/config: Git repository settings (e.g., remote URL, credentials).env/*: Environment variables (API keys, DB credentials).aws/credentials: AWS access keys.ssh/known_hosts: SSH host trust info.docker/config.json: Docker registry credentials2. Attack Scenarios
.git/HEAD,.git/config,.git/objects/*— which may allow full reconstruction of source code.3. Affected Scope
StaticHandler.setIncludeHidden(false)Severity
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Eclipse Vert.x vulnerable to a memory leak in TCP servers
CVE-2024-1300 / GHSA-9ph3-v2vh-3qx7
More information
Details
A vulnerability in the Eclipse Vert.x toolkit causes a memory leak in TCP servers configured with TLS and SNI support. When processing an unknown SNI server name assigned the default certificate instead of a mapped certificate, the SSL context is erroneously cached in the server name map, leading to memory exhaustion. This flaw allows attackers to send TLS client hello messages with fake server names, triggering a JVM out-of-memory error.
Severity
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:LReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Vert.x Web static handler component cache can be manipulated to deny the access to static files
CVE-2026-1002 / GHSA-cphf-4846-3xx9
More information
Details
The Vert.x Web static handler component cache can be manipulated to deny the access to static files served by the handler using specifically crafted request URI.
The issue comes from an improper implementation of the C. rule of section 5.2.4 of RFC3986 and is fixed in Vert.x Core component (used by Vert.x Web): https://github.com/eclipse-vertx/vert.x/pull/5895
Steps to reproduce
Given a file served by the static handler, craft an URI that introduces a string like bar%2F..%2F after the last / char to deny the access to the URI with an HTTP 404 response. For example https://example.com/foo/index.html can be denied with https://example.com/foo/bar%2F..%2Findex.html
Mitgation
Disabling Static Handler cache fixes the issue.
StaticHandler staticHandler = StaticHandler.create().setCachingEnabled(false);
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:LReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Vert.x has a DoS via unbounded server-side SNI SslContext cache growth
CVE-2026-6860 / GHSA-3g76-f9xq-8vp6
More information
Details
Potential unbounded server-side SNI
SslContextcache growth in Vert.x TLS handling, with = resource-exhaustion / DoS impact. On affected versions, matching server-side SNI names are cached viacomputeIfAbsent(serverName, ...)in a serverName-keyedSslContextcache.The implementation differs slightly by branch, but the same sink appears to be present in released versions
4.3.4through5.0.11:4.3.x:SSLHelper4.4.x/4.5.x:SslChannelProvider5.0.xand currentmaster:SslContextProviderWhen server-side SNI is enabled and wildcard or otherwise broad hostname mappings are used, an unauthenticated client can send many distinct matching SNI names and cause the server to retain increasing numbers of
SslContextentries over time, leading to increasing memory consumption and possible DoS conditions.Steps to reproduce
setSsl(true)andsetSni(true).What are the affected versions?
Affected released versions confirmed on
origin:4.3.4through4.3.84.4.0through4.4.94.5.0through4.5.265.0.0through5.0.11Not affected by the same sink:
4.0.xthrough4.2.x4.3.0through4.3.3Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:LReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
vert-x3/vertx-web (io.vertx:vertx-web)
v4.5.22Compare Source
v4.5.21Compare Source
v4.5.20Compare Source
v4.5.19Compare Source
v4.5.18Compare Source
v4.5.17Compare Source
v4.5.16Compare Source
v4.5.15Compare Source
v4.5.14Compare Source
v4.5.13Compare Source
v4.5.12Compare Source
v4.5.11Compare Source
v4.5.10Compare Source
v4.5.9Compare Source
v4.5.8Compare Source
v4.5.7Compare Source
v4.5.6Compare Source
v4.5.5Compare Source
v4.5.4Compare Source
v4.5.3Compare Source
v4.5.2Compare Source
v4.5.1Compare Source
v4.5.0Compare Source
v4.4.9Compare Source
v4.4.8Compare Source
v4.4.7Compare Source
v4.4.6Compare Source
v4.4.5Compare Source
v4.4.4Compare Source
v4.4.3Compare Source
v4.4.2Compare Source
v4.4.1Compare Source
v4.4.0Compare Source
v4.3.8Compare Source
v4.3.7Compare Source
v4.3.6Compare Source
eclipse/vert.x (io.vertx:vertx-core)
v4.4.0Compare Source
v4.3.8Compare Source
v4.3.7Compare Source
v4.3.6Compare Source
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR has been generated by Mend Renovate.