SSRF in Glances IP Plugin via public_api leads to credential leakage 漏洞概述 漏洞类型:服务端请求伪造 (SSRF) 及凭证泄露。 受影响组件:Glances IP Plugin ( )。 受影响版本:>= 4.5.2 (latest, unpatched)。 修复版本:>= 4.5.4。 CVE ID:CVE-2024-35387。 根本原因: 配置参数被直接用于出站 HTTP 请求,且未进行任何协议、主机名或 IP 地址的验证。当配置了 和 时,凭证会被自动附加到请求头中发送给攻击者控制的服务器。 影响范围 1. 服务端请求伪造 (SSRF):攻击者可强制应用向任意内部服务、外部端点或云元数据端点发送请求。 2. 凭证泄露:如果配置了用户名和密码,凭证会通过 头泄露给攻击者。 3. 内部网络访问:可访问 (本地服务) 或私有 IP 段 ( , , )。 4. 云元数据暴露:可查询云元数据端点 ( ),可能导致 IAM 令牌等敏感凭证泄露。 5. 数据注入/操纵:攻击者控制的服务器响应会被 Glances 接受并存储,进而通过 暴露。 修复方案 1. 强制协议限制:仅允许 和 协议,拒绝 , , 等。 2. 验证目标主机:解析主机名为 IP 地址,并检查是否属于受限范围(如回环地址 、私有地址 , , 或链接本地地址 )。 3. 在创建线程前验证:在初始化 之前进行验证,如果验证失败则禁用插件或发送空请求。 4. 信任边界澄清: 不应负责验证,调用者(IP 插件)必须确保只传递安全的外部 URL。 POC 代码 Step 2: Create malicious config (Terminal 2) Step 4: Observe SSRF request (Terminal 1) Step 5: Decode leaked credentials Step 6: Confirm data via API