CVE-2025-49125
NoneApache Tomcat - Security constraint bypass for pre/post-resources
CVSS
—
EPSS
3.4%
Published
Jun 16, 2025
CISA due date
—
Cloudanix analysis
Some Tomcat-based websites may let people reach protected files or pages through an unintended address, so affected systems should be updated and checked for exposure.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Web Framework
- Class
- Authentication Bypass
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is an authentication-bypass flaw in Apache Tomcat’s handling of web application resources when PreResources or PostResources are mounted at a path other than the web application root. In vulnerable versions, the same mounted resource could be reachable through an unexpected URL path that may not match the security constraints configured for the intended path. As a result, a resource that should require authentication or authorization can be served to an unauthenticated or lower-privileged requester. The impact is primarily unauthorized access to protected web application resources; it does not inherently provide remote code execution, but exposed sensitive files, application functions, or configuration data could enable follow-on compromise.
Why it matters to the business
Organizations running affected Tomcat versions may unintentionally expose protected application content or functionality to unauthenticated users. The operational risk depends on what is mounted through PreResources or PostResources: exposure could range from limited static content disclosure to leakage of sensitive business data, internal application artifacts, or access to functionality assumed to be protected. The issue is not listed in CISA KEV and has a relatively low EPSS score, but because Tomcat is widely deployed and often internet-facing, externally exposed applications should still be prioritized for review and patching.
How an attack unfolds
An attacker first identifies an application served by an affected Apache Tomcat version and looks for URL structures that suggest additional resources are mounted into the web application through PreResources or PostResources. If those resources are mounted below a non-root path and the application relies on security constraints to protect the expected URL, the attacker probes alternate URL paths that Tomcat may resolve to the same underlying resource. When a matching alternate path is found, the request bypasses the security rule that would normally apply to the expected path, allowing the attacker to retrieve the resource or interact with it without the intended authentication or authorization checks. Named exploitation context was provided for MadeYouReset, but no mature public exploit or CISA KEV confirmation is indicated in the supplied data; defenders should still treat suspicious unauthenticated access to protected Tomcat resource paths as potentially relevant.
How to fix it
Upgrade Apache Tomcat to a fixed release: 11.0.8 or later for the 11.x line, 10.1.42 or later for the 10.1.x line, and 9.0.106 or later for the 9.0.x line. Rebuild and redeploy container images, application bundles, and embedded Tomcat distributions so the runtime actually uses the fixed version. Review applications using PreResources or PostResources mounted anywhere other than the web application root and verify that all reachable URL variants are protected by equivalent security constraints. As a temporary mitigation where immediate upgrade is not possible, restrict external access to affected applications, add reverse-proxy or WAF rules for known unintended alternate paths once identified, and avoid relying on a single expected URL pattern to protect mounted resources. Vendor/package fixed versions provided in the input should also be consumed where applicable, including apache/tomcat fixed in commit 05ccf0c3e22d388f0cf853e32485d8249d051f2f and the listed Mageia package updates: kdebase4-runtime 4.12.5-1.2.mga4, kdebase4-runtime 4.10.5-1.2.mga3, kwebkitpart 1.3.2-1.1.mga3, and kwebkitpart 1.3.2-3.1.mga4.
How to confirm the fix worked
Confirm the deployed Tomcat version from runtime banners, package inventory, container image manifests, build files, or startup logs and verify it is at least 11.0.8, 10.1.42, or 9.0.106 depending on the branch in use. Do not rely only on source repository updates; validate the running process and deployed artifact. Review each web application’s context configuration for PreResources and PostResources mounted outside the root path, then test both the intended protected path and possible alternate resolved paths while unauthenticated. A successful fix should return the same authorization decision for all equivalent paths, such as 401, 403, or a redirect to login, rather than serving the resource through an alternate path. Regression tests should be added for mounted resource paths and security-constraint coverage.
Typical attack path
- Identify internet-facing or reachable applications running vulnerable Apache Tomcat versions.
- Fingerprint the application structure and look for mounted resources, static assets, or paths that appear protected under normal routing.
- Probe alternate URL paths that may resolve to the same PreResources or PostResources content but do not match the configured security constraint.
- Request protected resources without credentials or with a low-privileged session.
- Use any exposed content, metadata, configuration, or application functionality for data theft, account targeting, or additional exploitation.
How to detect it
To determine whether this was already exploited, review web server, reverse proxy, load balancer, WAF, and Tomcat access logs for unauthenticated or low-privileged requests that returned successful responses for resources normally requiring authentication. Focus on applications with PreResources or PostResources configured outside the web application root, and compare requests to the expected protected path against requests for unusual path variants, duplicate path segments, encoded characters, normalization edge cases, or unexpected prefixes that resolve to the same content. Useful log fields include source IP, authenticated username or session identifier, request URI, status code, response size, referrer, user agent, and upstream application route. Investigate 200/206/304 responses where the same resource is later or normally accessed only after login, especially if there is no associated authenticated session. Correlate suspicious access with application logs showing missing principals, anonymous sessions, authorization-filter bypasses, or unusual static-resource serving. If suspicious access is found, preserve the relevant access logs, application logs, deployed context configuration, web.xml security constraints, and the exact vulnerable application artifact for scoping. There are no universal exploit strings because the alternate path depends on each application’s resource configuration.
What your security team should do
- Inventory all Apache Tomcat deployments, including embedded Tomcat in vendor applications, containers, CI-built application images, and developer-managed services.
- Prioritize patching internet-facing Tomcat applications and any application that uses PreResources or PostResources mounted below a non-root path.
- Upgrade to Tomcat 11.0.8, 10.1.42, or 9.0.106 or later, then redeploy and restart affected services.
- Review web.xml and context resource configuration to ensure authorization controls cover every reachable path to mounted resources.
- Search historical access logs for unauthenticated 200 responses to paths that should require authentication, especially around mounted resource locations.
- If exploitation is suspected, determine exactly what resources were exposed and assess whether credentials, tokens, configuration files, proprietary code, or sensitive records were accessed.
- Add automated security tests that verify protected resources cannot be reached through alternate paths.
- Monitor threat intelligence for any change in exploit maturity, including public proof-of-concept availability or confirmed exploitation activity associated with MadeYouReset or other campaigns.
The record
Authentication Bypass Using an Alternate Path or Channel vulnerability in Apache Tomcat. When using PreResources or PostResources mounted other than at the root of the web application, it was possible to access those resources via an unexpected path. That path was likely not to be protected by the same security constraints as the expected path, allowing those security constraints to be bypassed. This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.7, from 10.1.0-M1 through 10.1.41, from 9.0.0.M1 through 9.0.105. Users are recommended to upgrade to version 11.0.8, 10.1.42 or 9.0.106, which fix the issue.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 10.1.0-M1 | 10.1.42 |
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 11.0.0-M1 | 11.0.8 |
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 8.5.0 | No fix |
| Maven | org.apache.tomcat.embed:tomcat-embed-core | 9.0.0.M1 | 9.0.106 |
| Maven | org.apache.tomcat:tomcat-catalina | 10.1.0-M1 | 10.1.42 |
| Maven | org.apache.tomcat:tomcat-catalina | 11.0.0-M1 | 11.0.8 |
| Maven | org.apache.tomcat:tomcat-catalina | 8.5.0 | No fix |
| Maven | org.apache.tomcat:tomcat-catalina | 9.0.0.M1 | 9.0.106 |
| AlmaLinux:10 | tomcat9 | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-admin-webapps | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-docs-webapp | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-el-3.0-api | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-jsp-2.3-api | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-lib | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-servlet-4.0-api | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:10 | tomcat9-webapps | 0 | 1:9.0.87-5.el10_0.3 |
| AlmaLinux:8 | tomcat | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-admin-webapps | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-docs-webapp | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-el-3.0-api | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-jsp-2.3-api | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-lib | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-servlet-4.0-api | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:8 | tomcat-webapps | 0 | 1:9.0.87-1.el8_10.6 |
| AlmaLinux:9 | tomcat | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-admin-webapps | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-docs-webapp | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-el-3.0-api | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-jsp-2.3-api | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-lib | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-servlet-4.0-api | 0 | 1:9.0.87-3.el9_6.3 |
| AlmaLinux:9 | tomcat-webapps | 0 | 1:9.0.87-3.el9_6.3 |
| Bitnami | tomcat | 0 | 9.0.106 |
| Bitnami | tomcat | 9.0.0 | 9.0.106 |
| Chainguard | camunda-zeebe-8.6 | 0 | 8.6.18-r2 |
| Chainguard | camunda-zeebe-8.6-compat | 0 | 8.6.18-r2 |
| Chainguard | thingsboard | 0 | 4.0.1-r8 |
| Chainguard | thingsboard-tb-js-executor | 0 | 4.0.1-r8 |
| Chainguard | thingsboard-tb-mqtt-transport | 0 | 4.0.1-r8 |
| Chainguard | thingsboard-tb-node | 0 | 4.0.1-r8 |
| Chainguard | thingsboard-tb-web-ui | 0 | 4.0.1-r8 |
| Debian:11 | tomcat9 | 0 | No fix |
| Debian:12 | tomcat10 | 0 | No fix |
| Debian:12 | tomcat9 | 0 | 9.0.70-2 |
| Debian:13 | tomcat10 | 0 | No fix |
| Debian:13 | tomcat11 | 0 | No fix |
| Debian:13 | tomcat9 | 0 | 9.0.70-2 |
| Mageia:9 | tomcat | 0 | 9.0.106-1.mga9 |
| SUSE:Enterprise Storage 7.1 | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Enterprise Storage 7.1 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | tomcat10 | 0 | 10.1.42-150200.5.45.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | tomcat10 | 0 | 10.1.42-150200.5.45.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP6 | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP6 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP6 | tomcat10 | 0 | 10.1.42-150200.5.45.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP6 | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP6 | tomcat11 | 0 | 11.0.9-150600.13.6.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat10 | 0 | 10.1.42-150200.5.45.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise Module for Web and Scripting 15 SP7 | tomcat11 | 0 | 11.0.9-150600.13.6.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | tomcat | 0 | 9.0.36-3.145.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | tomcat10 | 0 | 10.1.42-150200.5.45.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | tomcat | 0 | 9.0.36-3.145.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | tomcat | 0 | 9.0.108-150200.91.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | tomcat10 | 0 | 10.1.42-150200.5.45.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| SUSE:Manager Server 4.3 | tomcat | 0 | 9.0.106-150200.86.1 |
| SUSE:Manager Server LTS 4.3 | tomcat | 0 | 9.0.108-150200.91.1 |
| Wolfi | thingsboard | 0 | 4.0.1-r8 |
| Wolfi | thingsboard-tb-js-executor | 0 | 4.0.1-r8 |
| Wolfi | thingsboard-tb-mqtt-transport | 0 | 4.0.1-r8 |
| Wolfi | thingsboard-tb-node | 0 | 4.0.1-r8 |
| Wolfi | thingsboard-tb-web-ui | 0 | 4.0.1-r8 |
| maven | org.apache.tomcat.embed/tomcat-embed-core | 10.1.0-M1 | 10.1.42 |
| maven | org.apache.tomcat.embed/tomcat-embed-core | 11.0.0-M1 | 11.0.8 |
| maven | org.apache.tomcat.embed/tomcat-embed-core | 8.5.0 | No fix |
| maven | org.apache.tomcat.embed/tomcat-embed-core | 9.0.0.M1 | 9.0.106 |
| maven | org.apache.tomcat/tomcat-catalina | 10.1.0-M1 | 10.1.42 |
| maven | org.apache.tomcat/tomcat-catalina | 11.0.0-M1 | 11.0.8 |
| maven | org.apache.tomcat/tomcat-catalina | 8.5.0 | No fix |
| maven | org.apache.tomcat/tomcat-catalina | 9.0.0.M1 | 9.0.106 |
| openSUSE:Leap 15.6 | tomcat | 0 | 9.0.106-150200.86.1 |
| openSUSE:Leap 15.6 | tomcat | 0 | 9.0.108-150200.91.1 |
| openSUSE:Leap 15.6 | tomcat10 | 0 | 10.1.42-150200.5.45.1 |
| openSUSE:Leap 15.6 | tomcat10 | 0 | 10.1.43-150200.5.48.1 |
| openSUSE:Leap 15.6 | tomcat11 | 0 | 11.0.9-150600.13.6.1 |
| openSUSE:Tumbleweed | tomcat | 0 | 9.0.106-1.1 |
| openSUSE:Tumbleweed | tomcat10 | 0 | 10.1.42-1.1 |
| openSUSE:Tumbleweed | tomcat11 | 0 | 11.0.8-1.1 |
Related vulnerabilities
- CVE-2026-24733 Improper Input Validation vulnerability in Apache Tomcat. Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-66614 Improper Input Validation vulnerability. Also affects org.apache.tomcat.embed:tomcat-embed-core
- GHSA-wmwf-9ccg-fff5 Apache Tomcat Vulnerable to Relative Path Traversal Also affects org.apache.tomcat.embed:tomcat-embed-core
- GHSA-vfww-5hm6-hx2j Apache Tomcat Vulnerable to Improper Neutralization of Escape, Meta, or Control Sequences Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-61795 Improper Resource Shutdown or Release vulnerability in Apache Tomcat. Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-55752 Relative Path Traversal vulnerability in Apache Tomcat. Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-55754 Improper Neutralization of Escape, Meta, or Control Sequences vulnerability in Apache… Also affects org.apache.tomcat.embed:tomcat-embed-core
- CVE-2025-48989 Improper Resource Shutdown or Release vulnerability in Apache Tomcat made Tomcat… Also affects org.apache.tomcat.embed:tomcat-embed-core