IPBUF安全漏洞报告
English
CVE-2026-3673 CVSS 5.4 中危

CVE-2026-3673 Frappe存储型XSS漏洞

披露日期: 2026-04-22

漏洞信息

漏洞编号
CVE-2026-3673
漏洞类型
存储型跨站脚本攻击 (Stored XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Frappe

相关标签

Stored XSSFrappeWeb VulnerabilityCVE-2026-3673Injection

漏洞概述

该漏洞影响Frappe 16.10.10版本。由于系统在渲染`_user_tags`时未对标签内容进行适当的HTML转义,经过身份认证的攻击者能够存储精心构造的恶意标签值。当受害者访问包含这些标签的列表或报告视图时,嵌入的JavaScript代码将被触发并执行,导致存储型跨站脚本攻击,严重危及用户会话和数据安全。

技术细节

漏洞源于Frappe框架在处理标签渲染时的安全缺陷。具体而言,易受攻击的渲染器将存储在`_user_tags`中的用户输入直接插值到HTML属性和元素内容中,完全缺乏必要的上下文感知输出转义机制。攻击流程如下:首先,攻击者利用低权限账户登录系统,在目标实体的标签字段中注入包含HTML/JavaScript的恶意载荷(如`onmouseover`事件处理程序或`<script>`标签)。由于后端未进行有效的过滤或净化,该载荷被持久化存储于数据库中。随后,当具有更高权限的用户(如管理员)浏览包含该实体的数据列表或生成相关报告时,服务器端直接将未转义的恶意数据嵌入响应页面的HTML结构中。客户端浏览器解析HTML时执行攻击者脚本,从而可能窃取敏感Cookie、篡改页面内容或执行未授权的管理操作。该漏洞利用了信任边界,将用户输入当作可信代码执行。

攻击链分析

STEP 1
1. 获取权限
攻击者使用低权限账户登录Frappe系统。
STEP 2
2. 注入载荷
攻击者在任意文档的`_user_tags`字段中输入恶意JavaScript代码(如XSS Payload)。
STEP 3
3. 持久化存储
系统将未经过滤的恶意标签值存储在数据库中。
STEP 4
4. 触发漏洞
受害者(如管理员)访问包含该标签的列表或报告视图。
STEP 5
5. 执行代码
受害者浏览器渲染未转义的HTML,导致攻击者的JavaScript代码在上下文中执行。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# Conceptual PoC for CVE-2026-3673 # The vulnerability allows injecting payloads into the _user_tags field. # Payload example for HTML Attribute context: " onmouseover=alert(1) // # Payload example for Element Content context: "><script>alert('XSS')</script> # HTTP Request Simulation (Authenticated): # POST /api/resource/Task/{task_id} # { # "user_tags": "\"><img src=x onerror=alert(document.domain)>" # } # When a victim views the list, the alert triggers.

影响范围

Frappe 16.10.10

防御指南

临时缓解措施
在官方修复之前,建议限制普通用户对`_user_tags`字段的写入权限,或在服务器端实施输入过滤中间件,拦截包含特殊字符(如<, >, ", ', on)的标签输入。

参考链接

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