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, 信息安全, 授权绕过, 服务器监控, 源码审计, 漏洞分析, 白名单机制, 跨域重定向, 路径探测, 防御绕过, 零日漏洞