Gemini CLI 路径防护存旁路漏洞,前缀比对被同级目录绕过

ranjan-del · ghdev · 2026-09-09

开发者 ranjan-del 向 google-gemini/gemini-cli 提交 P1 级安全修复 PR:getinternaldocs 工具的路径穿越防护用字符串前缀比较(startsWith)判断路径是否在 docsRoot 内,缺少路径组件边界检查。攻击者请求 ../docs-private/secret.md 时,解析结果仍以 <repo>/docs 开头,防护被绕过,工具会把私有文件内容返回给模型。

修复方案是改用仓库里 sandboxedFileSystemService.ts 已在用的 isSubpath(),基于 path.relative() 比较,同时处理 Windows/macOS 大小写不敏感的问题。作者还指出原测试只测了 ../package. 这类不共享前缀的路径,因此从未覆盖同级目录旁路场景;新测试创建真实的同级目录并断言请求被拒绝。该工具为只读,影响范围有限。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →