打开下载仓库前,先排查 Git 执行配置
文章指出,下载仓库自带的 Git 配置可能指定可执行命令,Agent 启动时运行 git status 或 git diff 就可能触发。作者建议先列出本地配置及来源,检查文件监控、钩子、过滤器和差异处理相关设置。
原文暂未完整获取,基于公开信息的快读
下载来的项目文件夹,可能在 Agent 开始读代码前就执行了命令。dev.to 这篇文章提醒:如果文件夹保留了 .git 目录,其中的本地配置可能指定外部程序,Agent 启动时调用的 git status 或 git diff 就可能触发。风险入口藏在 Git 元数据里,不需要模型读到恶意提示词。
目前能确认什么
按原文节选,Manifold Security 将这类问题称为 GitSpawn。核心路径是:仓库自带 .git/config,Agent 为了解分支和改动调用 Git,Git 再按配置执行程序。
core.fsmonitor 原本用于文件变更监控,让大型仓库减少全量扫描;它也可以指定命令。过滤器、差异处理和钩子相关配置同样需要检查,但它们的触发条件不同,不能理解成每项都会被 git status 执行。
作者给出的第一步是列出本地配置及来源:
git -C /path/to/repo config --local --list --show-origin
看到 core.fsmonitor、core.hooksPath、attr.tree,或 filter.*、diff.* 下指向命令的设置,应先人工检查。
这里有个边界:普通 git clone 不会复制源仓库的 .git/config。文章讨论的主要是压缩包、共享目录等保留 .git 的交付方式。
我的判断
不能把「只是查看 Git 状态」当作没有执行风险。
接收外部复现包的程序员,应该把检查放在 Agent 打开目录之前。若可信远端可用,重新 clone 能去掉随文件夹带来的本地配置;仅删除 core.fsmonitor,覆盖不了其他命令入口。
原文报告,部分受测 Agent 会在信任确认或认证之前触发载荷,且执行越过 Agent 自身的权限模型。但节选中的修复记录并不完整,不能据此断言当前版本仍受影响,也不能认定已全部修好。具体产品是否在调用 Git 前隔离仓库配置,仍要以对应版本的修复说明确认。