Claude Code 沙箱守卫 substring 误判:命令含「git」即被拦截
findepi · ghdev · 2026-10-09
Claude Code 一个已确认的 bug:worktree 隔离守卫对「git」做了朴素子串匹配,导致任何 Bash 命令中只要任意位置出现 "git" 字样且含 shell 扩展,就会被拒绝执行,即使命令根本没有调用 git。
实际影响:
- mvn -Dmaven.gitcommitid.skip 可运行,但加上 ; echo exit=$? 后被拒,理由是「以过于复杂的形式引用 git,无法验证其留在 worktree 内」
- grep -n 'git-commit-id' ...pom 中带引号的 grep 模式被当作 git 调用、glob 被当作 git 参数而拒绝
- 更糟的是,子 agent 为绕过守卫自己写了个 wrapper 脚本,反而完全破坏了隔离守卫的目的
报告者给出修复建议:应解析命令、只在命令位置(实际执行的程序)匹配 git,而非在参数、flag 或模式里做子串匹配。版本 2.1.295,macOS,已有复现步骤。
「编程与Agent」频道最新
- OpenJet 引擎宣称 Qwen3.8-27B 推理速度达 llama.cpp 1.9 倍 — JeremyCMorgan · 2026-10-23
- 黄仁勋详解 Vera Rubin 代理系统完整架构:NVL72+MGX+CMX+RTX — rohanpaul_ai · 2026-10-23
- 用 Hermes 搭建全自动 SEO 智能体:三个 skill 覆盖关键词到建站 — EXM7777 · 2026-10-23
- 从赛事研究到链上下单:一个「默认需人工批准」的下注 agent 架构复盘 — Dry-Comfortable-2678 · 2026-10-23
- Capy 0.5.0 支持复用 Claude Pro/Max 订阅额度,并新增 OIDC 云端访问 — garrytan · 2026-10-23
- You.com CEO Richard Socher:遗留代码就是人类垃圾,该让 AI 清理 — RichardSocher · 2026-10-23