[security] Harden path rules and web fetch network guards #92 漏洞概述 该 Pull Request 修复了 OpenHarnness 工具中存在的两个安全漏洞: 1. 敏感路径绕过 (Sensitive path bypass via grep / glob root) 原理: 和 工具在检查敏感路径保护时,仅对 和 参数进行了规范化,但未对 参数进行规范化。 后果:攻击者可以通过构造如 这样的目录根路径,绕过只读工具的限制,从而读取敏感目录(如 SSH 密钥)的内容。 2. 本地/内网 SSRF (Localhost / private-network SSRF via web_fetch and web_search) 原理: 和 工具接受攻击者控制的 HTTP 端点,并直接发起 HTTPS 请求。 后果:攻击者可利用该功能发起重定向、访问 、 或其他非公共网络目标,导致敏感数据泄露或内网服务探测。 影响范围 CVSS 评分: 路径绕过:5.3 (AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:N/A:N) SSRF:0.3 (AV:L/AC:L/PR:N/UI:R/S:C/C:L/I:N/A:N) 利用条件:攻击者需要诱导用户在 OpenHarnness 中运行受控内容或接受攻击者控制的提示。 修复方案 1. 规范化路径:在 中,对 参数进行规范化处理,使其与 和 保持一致。 2. 增强权限检查:在 中,同时评估规范化后的路径和带尾斜杠的变体,以匹配如 和 等目录根路径。 3. 网络守卫:在 中添加逻辑,验证出站 HTTP 目标,拒绝非公共地址,禁用代理继承,并重新验证每个重定向。 4. 路由调整:将 和 的路由通过共享的网络守卫。 5. 回归测试:添加测试用例,证明目录根权限检查能阻止内置敏感路径和显式拒绝规则。 POC 代码 1. 路径规则绕过 (Path-rule bypass before this patch) 2. SSRF 漏洞利用 (SSRF before this patch)