Claude Code 曝出严重 Bug:每 10 分钟自动执行 Git 强制重置导致代码丢失
近日,Anthropic 推出的 Claude Code 命令行工具被曝存在严重漏洞(Issue #40710)。在 macOS 环境下,该工具每隔 10 分钟会自动执行一次 git reset --hard 操作,强制将本地仓库同步至远程主分支。这一行为会导致用户所有未提交的已跟踪文件更改被永久删除,引发了开发者社区对 AI 编程工具安全性的高度关注。
核心要点
- 严重漏洞确认:Claude Code 版本 2.1.87 被发现在 macOS 环境下存在自动重置 Git 仓库的严重 Bug。
- 数据丢失风险:系统每 10 分钟执行一次
git reset --hard origin/main,会静默删除所有未提交的已跟踪文件修改。 - 受影响范围:目前确认受影响的系统为 macOS 15.4,使用通过 Homebrew 安装的 Bun 编译版本。
- 部分免疫情况:未跟踪的文件(Untracked files)和 Git 工作树(Worktrees)不受此重置行为影响。
详细分析
异常行为的发现与证据
根据 GitHub 用户 johnmathews 提交的 Issue #40710,该问题是在使用 Claude Code 过程中被发现的。用户通过查看 git reflog 发现了惊人的证据:日志显示 HEAD 指针以精确的 10 分钟为间隔不断移动。记录显示,从 16:45 到 22:19,系统持续执行“reset: moving to origin/main”操作,产生了超过 95 条重置记录。这种高频且规律的重置行为表明,该操作是由程序内部定时任务触发的。
技术实现与破坏性
分析指出,Claude Code 并非通过调用外部 Git 二进制文件执行此操作,而是通过程序化的 Git 操作(programmatic git operations)实现的。这意味着用户在终端中可能无法实时察觉到命令的执行。该操作包含 git fetch origin 和 git reset --hard origin/main 两个步骤。由于使用了 --hard 参数,所有已跟踪文件(tracked files)中尚未 commit 的更改都会被强制覆盖,且无法通过常规手段撤销,对开发者的工作进度构成了极大威胁。
环境特定性与局限性
目前的报告显示,该问题具有特定的触发环境。受影响的设备运行的是 macOS 15.4 (Darwin 25.3.0, arm64),软件版本为 Claude Code 2.1.87。该版本是作为 Homebrew cask 安装的 Bun 编译二进制文件。值得注意的是,虽然已跟踪文件会被清理,但未被 Git 跟踪的新文件(Untracked files)在重置过程中得以幸存。
行业影响
这一事件为 AI 编程工具行业敲响了警钟。首先,它暴露了 AI 工具在深度集成开发环境(IDE)和版本控制系统时,如果缺乏完善的权限隔离和安全审计,可能会对生产环境造成不可逆的破坏。其次,这可能会削弱开发者对自动化 AI 代理(AI Agents)的信任,促使行业重新评估“自主操作”与“用户确认”之间的平衡。对于 Anthropic 而言,修复此 Bug 并解释其触发机制是挽回开发者信心的关键。
常见问题
问题 1:如何确认我的 Claude Code 是否存在此问题?
您可以运行 git reflog 命令查看 Git 历史记录。如果发现大量以 10 分钟为间隔的 “reset: moving to origin/main” 记录,说明您的工具正在执行异常重置。
问题 2:哪些文件在这次 Bug 中是安全的?
根据报告,未被 Git 跟踪的文件(Untracked files)以及使用 Git worktrees 管理的项目不会受到影响。只有那些已经被 Git 跟踪但尚未提交(uncommitted)的修改会被删除。
问题 3:目前已知的受影响版本和系统是什么?
目前确认受影响的是在 macOS 15.4 系统上运行的 Claude Code 2.1.87 版本(通过 Homebrew 安装)。
