Update dependency io.vertx:vertx-web to v4.5.22 [SECURITY] (7.2.x) #10902
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.
For any questions/concerns about this PR, please review the Renovate Bot wiki/FAQs, or the #renovatebot Slack channel.
This PR contains the following updates:
4.4.8->4.5.22Vert.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).
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 these updates again.
This PR has been generated by Renovate Bot.