CVE-2025-24813
Description
Path Equivalence: 'file.Name' (Internal Dot) leading to Remote Code Execution and/or Information disclosure and/or malicious content added to uploaded files via write enabled Default Servlet in Apache Tomcat.
This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.2, from 10.1.0-M1 through 10.1.34, from 9.0.0.M1 through 9.0.98.
The following versions were EOL at the time the CVE was created but are
known to be affected: 8.5.0 though 8.5.100. Other, older, EOL versions
may also be affected.
If all of the following were true, a malicious user was able to view security sensitive files and/or inject content into those files:
- writes enabled for the default servlet (disabled by default)
- support for partial PUT (enabled by default)
- a target URL for security sensitive uploads that was a sub-directory of a target URL for public uploads
- attacker knowledge of the names of security sensitive files being uploaded
- the security sensitive files also being uploaded via partial PUT
If all of the following were true, a malicious user was able to perform remote code execution:
- writes enabled for the default servlet (disabled by default)
- support for partial PUT (enabled by default)
- application was using Tomcat's file based session persistence with the default storage location
- application included a library that may be leveraged in a deserialization attack
Users are recommended to upgrade to version 11.0.3, 10.1.35 or 9.0.99, which fixes the issue.
Summary dbcve.org
Apache Tomcat contains a path equivalence vulnerability using internal dots ('file.Name') in the Default Servlet. When writes are enabled (disabled by default) and partial PUT support is present (enabled by default), attackers can perform path traversal to read sensitive files, inject content into uploaded files, or achieve remote code execution if the application uses Tomcat's file-based session persistence with a deserialization library.
Mitigation
Upgrade to Apache Tomcat 11.0.3, 10.1.35, or 9.0.99. Additionally, ensure the default servlet has write operations disabled unless explicitly required, and review session persistence configuration.