Advisories for Maven/Io.vertx/Vertx-Web package

2025

Vert.x-Web vulnerable to Stored Cross-site Scripting in directory listings via file names

In the StaticHandlerImpl#sendDirectoryListing(…) method under the text/html branch, file and directory names are directly embedded into the href, title, and link text without proper HTML escaping. As a result, in environments where an attacker can control file names, injecting HTML/JavaScript is possible. Simply accessing the directory listing page will trigger an XSS. Affected Code: File: vertx-web/src/main/java/io/vertx/ext/web/handler/impl/StaticHandlerImpl.java Lines: 709–713: normalizedDir is constructed without escaping 714–731: <li><a …> elements insert file names …

Vert.x-Web Access Control Flaw in StaticHandler’s Hidden File Protection for Files Under Hidden Directories

There is a flaw in the hidden file protection feature of Vert.x Web’s StaticHandler when setIncludeHidden(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: Files under hidden directories: For example, /.secret/config.txt — although .secret is a hidden directory, the …

2023

Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')

Vert.x-Web is a set of building blocks for building web applications in the java programming language. When running vertx web applications that serve files using StaticHandler on Windows Operating Systems and Windows File Systems, if the mount point is a wildcard (*) then an attacker can exfiltrate any class path resource. When computing the relative path to locate the resource, in case of wildcards, the code: return "/" + rest; …

2022
2021

Cross-Site Request Forgery (CSRF)

Vert.x-Web framework does not perform a correct CSRF verification. Instead of comparing the CSRF token in the request with the CSRF token in the cookie, it compares the CSRF token in the cookie against a CSRF token that is stored in the session. An attacker does not even need to provide a CSRF token in the request because the framework does not consider it. The cookies are automatically sent by …

2018