研究人員發現開發者電腦有兩條性質唔同嘅數據傳送路徑:
POST /v1/responses):代理打開嘅檔案會序列化到模型請求入面。呢個係雲端編碼代理嘅正常行為。POST /v1/storage):整個倉庫會被獨立打包成一個 git bundle,然後以大約 75 MB 一個嘅區塊上傳到一個叫 grok-code-session-traces 嘅 Google Cloud Storage 儲存桶。呢個規模嘅差異證明咗上傳行為唔係由代理讀取嘅檔案驅動嘅。喺一個 12 GB 嘅測試倉庫中,存儲通道傳送咗 5.10 GiB 嘅數據,分咗 73 個區塊(全部返回 HTTP 200 狀態碼),而模型對話通道只傳輸咗 192 KB — 比例高達 ~27,800 倍。就算畀咗「只答 OK,唔好讀任何檔案」呢個提示,工具仍然會將整個倉庫上傳成 git bundle;將攔截到嘅 bundle 克隆返出嚟,可以還原到一個叫 src/_probe/never_read_canary.txt 嘅檔案(代理被明確禁止打開嘅),仲有完整嘅 Git 提交歷史。
.env 檔案入面嘅 API 金鑰、數據庫密碼同其他憑證,喺兩個通道中都係以明文原樣傳送,完全冇遮蓋或脫敏。喺控制測試中,一個 48 KB 嘅檔案,入面包含數據庫憑證同 API 金鑰,喺請求主體入面清清楚楚噉出現。xai-data-collector),源碼路徑包括 crates/codegen/xai-data-collector/src/gcs.rs 同 crates/codegen/xai-grok-shell/src/upload/ 。研究人員測試咗「改善模型(Improve the model)」私隱開關,發現佢根本冇停止到上傳。
trace_upload_enabled: true 。disable_codebase_upload=true 嘅配置選項,但佢同伺服器端行為嘅關係並冇文件說明,而且研究人員嘅測試顯示伺服器並唔尊重客戶端嘅偏好設定。原始研究人員同後續分析媒體建議以下措施:
用過 Grok Build CLI 喺私人倉庫嘅團隊,應該立即做嘅嘢:
.env 檔案、配置檔案或 Git 歷史嘅憑證,因為佢哋可能已經被傳送並儲存喺 grok-code-session-traces GCS 儲存桶。任何編碼代理嘅架構緩解措施:
研究人員發現開發者電腦有兩條性質唔同嘅數據傳送路徑:
POST /v1/responses):代理打開嘅檔案會序列化到模型請求入面。呢個係雲端編碼代理嘅正常行為。POST /v1/storage):整個倉庫會被獨立打包成一個 git bundle,然後以大約 75 MB 一個嘅區塊上傳到一個叫 grok-code-session-traces 嘅 Google Cloud Storage 儲存桶。呢個規模嘅差異證明咗上傳行為唔係由代理讀取嘅檔案驅動嘅。喺一個 12 GB 嘅測試倉庫中,存儲通道傳送咗 5.10 GiB 嘅數據,分咗 73 個區塊(全部返回 HTTP 200 狀態碼),而模型對話通道只傳輸咗 192 KB — 比例高達 ~27,800 倍。就算畀咗「只答 OK,唔好讀任何檔案」呢個提示,工具仍然會將整個倉庫上傳成 git bundle;將攔截到嘅 bundle 克隆返出嚟,可以還原到一個叫 src/_probe/never_read_canary.txt 嘅檔案(代理被明確禁止打開嘅),仲有完整嘅 Git 提交歷史。
.env 檔案入面嘅 API 金鑰、數據庫密碼同其他憑證,喺兩個通道中都係以明文原樣傳送,完全冇遮蓋或脫敏。喺控制測試中,一個 48 KB 嘅檔案,入面包含數據庫憑證同 API 金鑰,喺請求主體入面清清楚楚噉出現。xai-data-collector),源碼路徑包括 crates/codegen/xai-data-collector/src/gcs.rs 同 crates/codegen/xai-grok-shell/src/upload/ 。研究人員測試咗「改善模型(Improve the model)」私隱開關,發現佢根本冇停止到上傳。
trace_upload_enabled: true 。disable_codebase_upload=true 嘅配置選項,但佢同伺服器端行為嘅關係並冇文件說明,而且研究人員嘅測試顯示伺服器並唔尊重客戶端嘅偏好設定。原始研究人員同後續分析媒體建議以下措施:
用過 Grok Build CLI 喺私人倉庫嘅團隊,應該立即做嘅嘢:
.env 檔案、配置檔案或 Git 歷史嘅憑證,因為佢哋可能已經被傳送並儲存喺 grok-code-session-traces GCS 儲存桶。任何編碼代理嘅架構緩解措施: