chore(deps): update dependency io.vertx:vertx-web to v4.5.22 [security] #1944
+1
−1
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.5.14->4.5.22Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
GitHub Vulnerability Alerts
CVE-2025-11965
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)CVE-2025-11966
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
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
Configuration
📅 Schedule: Branch creation - "" (UTC), Automerge - At any time (no schedule defined).
���� Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot.