CVE-2025-62365CVE-2025-62365是LibreNMS网络监控系统中存在的一个反射型跨站脚本(Reflected XSS)漏洞。LibreNMS是一款基于PHP/MySQL/SNMP的开源网络监控系统,广泛用于企业网络设备的监控与管理。该漏洞存在于LibreNMS 25.7.0之前版本的`librenms/includes/functions.php`文件中的`report_this`函数中。由于该函数对用户输入的`project_issues`参数使用了不正确的过滤方式——错误地在href属性环境中使用了`htmlentities`函数进行编码,导致攻击者可以通过构造恶意URL链接,在受害者点击链接后执行任意JavaScript代码。该漏洞的CVSS评分为6.1,属于中危级别。虽然该漏洞需要用户交互(UI:R)才能触发,且无需认证(PR:N),但由于攻击向量为网络(AV:N),且具有作用域变更(S:C),攻击者可以通过钓鱼邮件、恶意网页等方式诱导用户点击特制链接,从而窃取用户会话、获取敏感信息或执行未授权操作。该漏洞已在25.7.0版本中修复,建议用户尽快升级到最新版本以消除安全风险。
该漏洞的根本原因在于LibreNMS的`report_this`函数对`project_issues`参数的处理不当。在HTML的href属性环境中,`htmlentities`函数默认不会对某些特殊字符(如URL编码的javascript:伪协议)进行充分的转义处理。攻击者可以构造类似`javascript:alert(document.cookie)`的恶意payload,并将其嵌入到URL的`project_issues`参数中。当受害者点击包含该恶意参数的链接时,浏览器会解析href属性中的JavaScript伪协议并执行其中的恶意代码。具体利用方式如下:攻击者首先构造一个包含恶意`project_issues`参数的URL,例如`http://target/librenms/report/?project_issues=javascript:alert(document.cookie)`,然后通过钓鱼邮件或社交工程手段诱导受害者点击该链接。由于该漏洞是反射型XSS,恶意代码不会持久化存储在服务器端,而是在用户点击链接时立即执行。攻击成功后,攻击者可以窃取用户的会话Cookie、进行钓鱼攻击、篡改页面内容或执行其他恶意操作。需要注意的是,该漏洞的利用需要用户交互(点击恶意链接),且攻击代码会在受害者的浏览器上下文中执行,因此攻击者可以利用受害者的权限执行操作。修复方法是将`htmlentities`函数替换为更适合在href属性环境中使用的过滤函数,或者使用`ENT_QUOTES`标志并结合URL白名单验证。