Gemini CLI 修复 checkpoint 路径穿越漏洞,可越界读写删 JSON 文件
mr8lu · ghdev · 2026-10-23
google-gemini/gemini-cli 的 PR #29876 修复了 Logger.getCheckpointPath() 与 deleteCheckpoint() 在回退到旧版未编码 checkpoint 文件名时的路径穿越漏洞。
- 漏洞原理:checkpointPath() 会对 tag 做 percent-encode,但旧版回退路径直接用原始 tag 拼 checkpoint-${tag}.json。包含 ../ 的 tag(如 x/../../target)经 path.join 规范化后可逃出 checkpoints 目录,导致 loadCheckpoint、checkpointExists、deleteCheckpoint 能读取、探测或删除目录外的任意 .json 文件。
- 修复方式:新增 legacyCheckpointPath(tag),在触碰文件系统前校验候选文件名是目录内的扁平 basename、不含路径分隔符;并补充回归测试覆盖 ../ 穿越 tag 的拒绝场景。
- 该 PR 关闭 issue #29191,改动约 +55/-11 行,附 vitest/eslint/typecheck 验证步骤。
「编程与Agent」频道最新
- Garry Tan 力挺 Aside Browser:让 Agent 真正用好网页的解法 — garrytan · 2026-10-23
- MCP 服务器 30 天后暗藏窃取 SSH 密钥指令,作者开源 mcp-guard 防变节 — ErgoniaWorks · 2026-10-23
- 实测:不在 AGENTS.md 里写明的 MCP 工具,编码 Agent 不会用 — colinmcnamara · 2026-10-23
- 用开源模型+Claude 把一段网球视频变成世界级教练 — tweetsatpreet · 2026-10-23
- 132 个免费开源 AI Agent 与 RAG 项目合集,星标 1.65 万 — Arindam_1729 · 2026-10-23
- Google Agents CLI 开放扩展系统,v1.8.0 官方支持 LangChain — rseroter · 2026-10-23