CVE-2025-59428CVE-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(可用性无影响)。