Description
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;` from `Utils.java` 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. This issue only affects users deploying in windows environments and upgrading is the advised remediation path. There are no known workarounds for this vulnerability.
Remediation
References
https://github.com/vert-x3/vertx-web/blob/62c0d66fa1c179ae6a4d57344631679a2b97e60f/vertx-web/src/main/java/io/vertx/ext/web/impl/Utils.java#L83
https://github.com/vert-x3/vertx-web/commit/9e3a783b1d1a731055e9049078b1b1494ece9c15
https://github.com/vert-x3/vertx-web/security/advisories/GHSA-53jx-vvf9-4x38
Related Vulnerabilities
CVE-2020-28500 Vulnerability in maven package org.webjars:lodash
CVE-2018-3753 Vulnerability in npm package merge-objects
CVE-2023-30543 Vulnerability in npm package @web3-react/metamask
CVE-2021-3803 Vulnerability in npm package nth-check
CVE-2023-33006 Vulnerability in maven package org.jenkins-ci.plugins:wso2id-oauth