无人告知的传输通道
核心发现并非编码代理读取了敏感文件,而是存在第二个独立的数据管道。Grok Build CLI 建立了两条独立的网络路径:一条用于正常模型交互的 POST /v1/responses 通道,另一条则是通过 POST /v1/storage 通道将整个受控 Git 仓库(含完整提交历史)打包为 git bundles 发送至名为 grok-code-session-traces 的 Google Cloud Storage 存储桶 [1]。第二条路径的触发独立于代理实际读取的内容。为证明这并非模型仅摄入其打开的文件,研究员植入了一个名为 .env 的诱饵文件,内含字符串 API_KEY=CANARY7F3A9-SECRET-should-not-leave,且从未指示代理打开该文件,但随后在捕获的上传数据中完整恢复了该字符串 [1]。
这一细节将事件从隐私投诉升级为已证实的数据外泄:一个代理从未接触的文件仍离开了本地设备。代理实际读取的文件(包括真实密钥)也以未脱敏形式传输,同时出现在实时模型交互和通过 GCS 存储桶推送的 session_state 归档中 [2]。存储桶名称暗示了其设计意图:用于捕获完整会话上下文作为训练或调试追踪,而非仅发送与当前任务相关的少量文件 [1]。

