Rickidevs/CVE-2026-32913
GitHub: Rickidevs/CVE-2026-32913
记录 OpenClaw 框架在处理跨域重定向时未能完全剥离自定义授权标头的严重漏洞(CVE-2026-32913),包含完整的漏洞原理分析、危害评估与修复方案。
Stars: 0 | Forks: 0
在审查源代码时,我重点关注了 OpenClaw 如何处理 HTTP 请求——具体来说是负责发起服务端 fetch 调用的 `fetchWithSsrFGuard()` 函数。
我注意到了一些不对劲的地方。
当请求遵循跨域重定向时(意味着服务器发送了指向不同域的 `3xx` 响应),OpenClaw 本应在将请求转发到新目的地之前剥离敏感标头。它确实这样做了——但仅针对一个范围狭窄的硬编码拒绝列表:
```
Authorization, Proxy-Authorization, Cookie, Cookie2
```
问题在于?该列表并不完整。
诸如 `X-Api-Key`、`Private-Token` 等自定义授权标头,或是开发人员常用的任何其他 bearer 风格标头——都没有被剥离。它们被原样转发到了重定向目标。
这意味着:如果攻击者能够控制或影响重定向的指向,他们就能接收到本不应发给他们的敏感凭证。
## 为什么这很危险
假设你的应用程序使用 OpenClaw 通过自定义 `X-Api-Key` 标头调用内部 API。恶意服务器响应重定向到一个攻击者控制的 URL。OpenClaw 遵循重定向——并将你的 API 密钥一并转发。
全完了。你的凭证现在已落入他人之手。
**CVSS 3.1 评分:9.3(严重)**
* 攻击媒介:网络
* 攻击复杂度:低
* 机密性影响:高
* 无需权限,无需用户交互
## 修复方案
维护者用安全标头允许列表取代了拒绝列表方法。新逻辑不再试图阻止已知的恶意标头,而是在跨域重定向时仅允许已知的安全标头通过——例如内容协商和缓存验证器。其他所有内容默认都会被剥离。
这是正确的做法。基于拒绝列表的安全是脆弱的;基于允许列表的安全是稳健的。
**参考资料**
* CVE 记录:CVE-2026–32913
* GitHub 公告:[GHSA-6mgf-v5j7-45cr](https://github.com/advisories/GHSA-6mgf-v5j7-45cr)
* 修复提交:`46715371b0612a6f9114dffd1466941ac476cef5`
* 受影响版本:`<= 2026.3.2`
* 已修补版本:`>= 2026.3.7`
## 如果你正在使用 OpenClaw
立即更新至 `>= 2026.3.7`。
如果你使用了自定义授权标头(如 `X-Api-Key` 或 `Private-Token`)且之前使用的是旧版本,请将这些凭证视为可能已泄露并进行轮换。
标签:API密钥泄露, CVE-2026-32913, CVSS 9.3, HTTP安全, meg, OpenClaw, SSRF, 信息安全, 授权绕过, 服务器监控, 源码审计, 漏洞分析, 白名单机制, 跨域重定向, 路径探测, 防御绕过, 零日漏洞