IPBUF安全漏洞报告
English
CVE-2026-32811 CVSS 8.2 高危

CVE-2026-32811 Heimdall访问控制绕过漏洞

披露日期: 2026-03-20

漏洞信息

漏洞编号
CVE-2026-32811
漏洞类型
访问控制绕过
CVSS评分
8.2 高危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
无需交互 (UI:N)
影响产品
Heimdall

相关标签

访问控制绕过HeimdallEnvoy授权绕过CVE-2026-32811

漏洞概述

Heimdall在使用envoy gRPC决策API模式时,因URL查询字符串编码错误导致规则匹配失败,攻击者可利用此漏洞绕过非通配符路径的访问控制限制。

技术细节

该漏洞在于Heimdall处理Envoy传递的URL路径时的逻辑缺陷。Envoy将URL查询字符串包含在path字段中发送给Heimdall。Heimdall使用Go的url库重构URL时,会对path中的特殊字符(如?)进行编码(变为%3F)。这导致原本匹配特定路径(如/mypath)的规则无法匹配编码后的路径(/mypath%3Ffoo=bar)。若Heimdall配置了默认“允许所有”规则,则该请求将被放行,导致安全策略绕过。

攻击链分析

STEP 1
1. 请求构造
攻击者向受保护的Envoy代理发送一个带有查询参数的恶意HTTP请求,目标路径受特定规则保护。
STEP 2
2. 请求处理
Envoy接收请求,解析URL属性,并通过gRPC决策API将请求属性(包含路径字段)发送给Heimdall。
STEP 3
3. 编码转换
Heimdall接收数据后,使用Go语言的url库重构URL,自动将路径字段中的问号(?)编码为%3F,导致路径格式发生变化。
STEP 4
4. 规则匹配失败
Heimdall的规则引擎尝试匹配路径,但配置的规则(如/mypath)无法匹配编码后的路径(如/mypath%3Ffoo=bar)。
STEP 5
5. 策略绕过
由于特定规则未命中,系统回退到默认规则。如果默认规则配置为“允许所有”,则请求被授权,攻击者成功绕过访问控制。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
# PoC Concept: Send a request with query parameters intended to bypass path matching # Target: A Heimdall protected endpoint via Envoy import requests target_url = "http://target.example.com/protected/resource?malicious=param" # Send the request # Envoy splits this. Path becomes "/protected/resource", Query becomes "malicious=param". # Envoy gRPC API sends path field as "/protected/resource?malicious=param" (depending on config) or similar. # Heimdall encodes '?' -> '%3F'. # Rule for "/protected/resource" fails to match. # If default rule is allow, access is granted. response = requests.get(target_url) if response.status_code == 200: print("[+] Potential bypass successful!") else: print("[-] Request blocked or failed")

影响范围

Heimdall 0.7.0-alpha 至 0.17.10

防御指南

临时缓解措施
在无法立即升级版本的情况下,应严格审查Heimdall的配置文件,确保没有设置“allow all”类的默认放行规则。对于v0.16.0及以上版本,系统默认会阻止不安全配置启动,除非显式使用了不安全标志,因此请确保未使用此类标志,并确保默认策略为拒绝。

参考链接

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