vlog
← 返回全部文章

Tech

Grok 的编码 CLI 传走了你整个仓库,而那个「关掉」的开关根本没接线

2026 年 8 月 1 日 · 吴军《数学之美》~1 min read

一次会话,5.10 GB,切成 73 个分块,一块接一块往外发。那台机器上跑的不过是个命令行编码助手,当时的活儿是改几个文件。2026 年 7 月,一名安全研究者给 xAI 的 Grok Build CLI 挂上抓包工具,屏幕上就是这个。

30 秒读懂
1一次会话

改几个文件的活儿,凭什么要往外发 5.10 GB

这条流量藏得并不深,只是一直没人去量。

抓包工具一装,那条 POST /v1/storage 就明晃晃摆在那儿,藏都没藏。收货的是 xAI 控制的一个 Google Cloud 存储桶,发出去的是开发者本地的整个 git 仓库:完整提交历史一起走,.env 里没脱敏的密钥也一起走。传的时候切成 73 个分块,每块约 75 MB,加起来 5.10 GB。全在一次会话之内。

观测项数值
版本Grok Build CLI v0.2.93
通道POST /v1/storage → xAI 控制的 Google Cloud 存储桶
单次会话上传量5.10 GB
分块73 个,每块约 75 MB
内容整个 git 仓库:完整提交历史 + 未脱敏的 .env
与任务所需之比约 27,800 倍

你别看前面几行还算体面,最刺眼的是最后一行。据分析,那 5.10 GB 约是该编码任务实际所需数据量的 27,800 倍。

口径:以上为安全研究者的抓包观测与相关报道,不是 xAI 公布的数据。
2一条信道

吴军讲过一件旧事:一条信道里该跑多少信息,是可以提前算出来的

算得出来,多出来的那部分才有了名字。

《数学之美》里最耐用的一件工具是信息熵。它把「信息」这个含糊的词变成了能上秤的东西:要消除多少不确定性,就得传多少比特。香农那条定理说的正是这个天花板,任何编码都翻不过去。吴军拿它算过一个汉字到底含多少信息。

这把尺子今天照样能用。一个编码 agent 要动你仓库里的三个文件,得给它多少上下文?相关的几个文件、依赖关系、一点项目结构,往宽了估也就几 MB。这个估算不精确,但量级是稳的。5.10 GB 比这个量级高出整整四位数。

打个比方

邻居敲门借一把扳手。你转身进屋拿车库钥匙,出来一看,他已经把整个车库连同里面的车、旧账本和保险柜一起装上了拖车。问他,他说:「找扳手嘛,总得都带上才知道哪把合适。」

核心

数据量本身就是意图的指纹。一条信道里该跑多少信息可以估算,跑的量远超任务所需时,多出来的那部分算不得噪声。27,800 倍这个比率,不必读一行代码,就已经把答案说出来了。

我父亲那家五金店,2001 年进过一批「全新」继电器,实际是打磨翻新的货。一个开维修部的老客户当场从兜里摸出放大镜看丝印,字体不对,货退了,按行规赔了双倍。从那以后柜台上常年搁着一瓶丙酮,谁送来的货都一样,擦一下丝印,翻新的就露馅。我爸从不跟供货的争嘴,验完再说话。抓包工具在这条流量上干的,就是那瓶丙酮的活。

3那个开关

你在设置页里关掉的东西,未必接在任何电路上

有人在一天之内替你证明了,真正的电门在哪一侧。

堵它的路,研究者试过两条。一条是给 agent 下指令,明写「不要读取任何文件」;另一条是在产品里把「改进模型(Improve the model)」那个开关关掉。两条都不管用,上传照旧。第二条尤其难看,那是产品明面上给用户的退出选项,点了不算数。

你以为的开关

设置页里的「改进模型」勾选框,加上写给 agent 的那句「不要读取任何文件」。它们表达的是你的意愿,兑不兑现,得看对方。

真正的开关

服务端的 disable_codebase_upload。值一改,全线停传。它不在你这台机器上,也不用问你同不同意。

约一天后,xAI 就是用这个服务端开关把上传停掉的:disable_codebase_upload 设成 true,静悄悄地生效,没有公开安全通告。一天就能关掉,正说明这个电门从来只在他们那一侧;用户手里的那个,充其量是一句替你转达的请求。

THE USER'S SWITCH WAS NEVER WIRED TO THIS UPLOADGrok Build CLIv0.2.93 · every sessionon the developer's machinePOST /v1/storage5.10 GB73 chunks × ~75 MB eachxAI-controlled bucketyour entire git repo.env keys, unredactedUSER-SIDE CONTROLSagent told: “do not read any files”“Improve the model” switched OFFSERVER-SIDE CONTROLdisable_codebase_upload: trueflipped about a day laterno public security advisoryTHE ONLY CUT-OFFNOT WIRED TO THIS CHANNELthe upload continued27,800×more data than the coding task neededone session · 5.10 GB · 73 chunksDATA FLOWCONTROL FLOW
Source: securityonline.info and TechTimes reporting (2026-07). Grok Build CLI v0.2.93 uploaded the entire local git repo on every session: 5.10 GB in 73 chunks, about 27,800 times the data the coding task needed. Neither the agent instruction nor the product opt-out toggle stopped it; a server-side flag did, about 1 day later.

2021 年我一个小工具的构建突然挂了。上游一个 npm 小包,作者删库跑路,left-pad 的翻版。打包机上恰好留着缓存,才没停摆。那回学到的不是「记得备份」这么简单:跑在别人手里的那一段,什么时候变、变成什么样,都不用先问你一声。从那以后整个 node_modules 定期拷进一块移动硬盘,硬盘贴纸上就俩字:别笑。

补救倒不慢。7 月 14 日晚上,ZDR 与 /privacy 文档补上了;Andrew Milich 确认对全体用户追溯删除,马斯克承诺此前上传的内容全部抹除;同名的 CLI 配置项随后也加了进来。7 月 16 日 Grok Build 开源,据报道,那段负责外传仓库的代码仍留在代码库里。

4落到你身上

这对你意味着什么:先量流量,再读设置页

设置页写的是承诺,流量图记的是行为。

装在开发机上的编码 agent,手里的权限比多数人以为的大。它读得到你的工作目录,也开得了自己的出网连接。这两样凑一块,它往外发什么,就只看它自己想发什么。

为什么值得看:「这家公司可不可信」是一道立场题,吵十年也吵不出结果;「这个进程今晚往外发了多少字节」是一道可测题,一条命令就有答案。把前者换成后者,你手上才有判据。

给编码 agent 单独开一个工作目录,别让它待在放着明文 .env 的仓库根;第一次跑的时候开一次抓包,或者看一眼防火墙的出站统计,把那个量级记住;哪天它变了,你心里有数。至于设置页里那些「不上传」「不用于训练」的勾,在你亲手量过之前,都只是声明。

这次那个开关没接线,一天之内被人量了出来。下一个工具的开关接没接线,还得等下一个愿意挂抓包工具的人。

本文取材自吴军《数学之美》,新闻出处为 securityonline.info 与 TechTimes(2026-07-16)等报道,事件时间为 2026 年 7 月。文中「几 MB 上下文」的量级估算为个人推断,非报道内容。本文为基于经典书籍的科普解读,非专业建议。

技术

Grok 的编码 CLI 传走了你整个仓库,而那个「关掉」的开关根本没接线

2026 年 8 月 1 日 · 吴军《数学之美》约 5 分钟

一次会话,5.10 GB,切成 73 个分块,一块接一块往外发。那台机器上跑的不过是个命令行编码助手,当时的活儿是改几个文件。2026 年 7 月,一名安全研究者给 xAI 的 Grok Build CLI 挂上抓包工具,屏幕上就是这个。

30 秒读懂
1一次会话

改几个文件的活儿,凭什么要往外发 5.10 GB

这条流量藏得并不深,只是一直没人去量。

抓包工具一装,那条 POST /v1/storage 就明晃晃摆在那儿,藏都没藏。收货的是 xAI 控制的一个 Google Cloud 存储桶,发出去的是开发者本地的整个 git 仓库:完整提交历史一起走,.env 里没脱敏的密钥也一起走。传的时候切成 73 个分块,每块约 75 MB,加起来 5.10 GB。全在一次会话之内。

观测项数值
版本Grok Build CLI v0.2.93
通道POST /v1/storage → xAI 控制的 Google Cloud 存储桶
单次会话上传量5.10 GB
分块73 个,每块约 75 MB
内容整个 git 仓库:完整提交历史 + 未脱敏的 .env
与任务所需之比约 27,800 倍

你别看前面几行还算体面,最刺眼的是最后一行。据分析,那 5.10 GB 约是该编码任务实际所需数据量的 27,800 倍。

口径:以上为安全研究者的抓包观测与相关报道,不是 xAI 公布的数据。
2一条信道

吴军讲过一件旧事:一条信道里该跑多少信息,是可以提前算出来的

算得出来,多出来的那部分才有了名字。

《数学之美》里最耐用的一件工具是信息熵。它把「信息」这个含糊的词变成了能上秤的东西:要消除多少不确定性,就得传多少比特。香农那条定理说的正是这个天花板,任何编码都翻不过去。吴军拿它算过一个汉字到底含多少信息。

这把尺子今天照样能用。一个编码 agent 要动你仓库里的三个文件,得给它多少上下文?相关的几个文件、依赖关系、一点项目结构,往宽了估也就几 MB。这个估算不精确,但量级是稳的。5.10 GB 比这个量级高出整整四位数。

打个比方

邻居敲门借一把扳手。你转身进屋拿车库钥匙,出来一看,他已经把整个车库连同里面的车、旧账本和保险柜一起装上了拖车。问他,他说:「找扳手嘛,总得都带上才知道哪把合适。」

核心

数据量本身就是意图的指纹。一条信道里该跑多少信息可以估算,跑的量远超任务所需时,多出来的那部分算不得噪声。27,800 倍这个比率,不必读一行代码,就已经把答案说出来了。

我父亲那家五金店,2001 年进过一批「全新」继电器,实际是打磨翻新的货。一个开维修部的老客户当场从兜里摸出放大镜看丝印,字体不对,货退了,按行规赔了双倍。从那以后柜台上常年搁着一瓶丙酮,谁送来的货都一样,擦一下丝印,翻新的就露馅。我爸从不跟供货的争嘴,验完再说话。抓包工具在这条流量上干的,就是那瓶丙酮的活。

3那个开关

你在设置页里关掉的东西,未必接在任何电路上

有人在一天之内替你证明了,真正的电门在哪一侧。

堵它的路,研究者试过两条。一条是给 agent 下指令,明写「不要读取任何文件」;另一条是在产品里把「改进模型(Improve the model)」那个开关关掉。两条都不管用,上传照旧。第二条尤其难看,那是产品明面上给用户的退出选项,点了不算数。

你以为的开关

设置页里的「改进模型」勾选框,加上写给 agent 的那句「不要读取任何文件」。它们表达的是你的意愿,兑不兑现,得看对方。

真正的开关

服务端的 disable_codebase_upload。值一改,全线停传。它不在你这台机器上,也不用问你同不同意。

约一天后,xAI 就是用这个服务端开关把上传停掉的:disable_codebase_upload 设成 true,静悄悄地生效,没有公开安全通告。一天就能关掉,正说明这个电门从来只在他们那一侧;用户手里的那个,充其量是一句替你转达的请求。

用户手里的那个开关,从来没接在这条通道上Grok Build CLIv0.2.93 · 每次会话跑在开发者本地POST /v1/storage5.10 GB73 个分块,每块约 75 MBxAI 控制的存储桶你的整个 git 仓库.env 密钥,未脱敏用户手里的开关指令写明:不要读取任何文件「改进模型」开关已关闭服务端的开关disable_codebase_upload: true约一天后被拨到位没有公开安全通告唯一起作用的开关没接在这条通道上上传照旧27,800×超出该编码任务实际所需的数据量一次会话 · 5.10 GB · 73 个分块数据流控制流
来源:securityonline.info 与 TechTimes 报道,2026-07。Grok Build CLI v0.2.93 每次会话都把开发者的整个 git 仓库上传,5.10 GB、73 个分块,约为该编码任务所需数据量的 27,800 倍。给 agent 的指令与产品里的退出开关都没能拦住;约 1 天后由服务端开关关停。

2021 年我一个小工具的构建突然挂了。上游一个 npm 小包,作者删库跑路,left-pad 的翻版。打包机上恰好留着缓存,才没停摆。那回学到的不是「记得备份」这么简单:跑在别人手里的那一段,什么时候变、变成什么样,都不用先问你一声。从那以后整个 node_modules 定期拷进一块移动硬盘,硬盘贴纸上就俩字:别笑。

补救倒不慢。7 月 14 日晚上,ZDR 与 /privacy 文档补上了;Andrew Milich 确认对全体用户追溯删除,马斯克承诺此前上传的内容全部抹除;同名的 CLI 配置项随后也加了进来。7 月 16 日 Grok Build 开源,据报道,那段负责外传仓库的代码仍留在代码库里。

4落到你身上

这对你意味着什么:先量流量,再读设置页

设置页写的是承诺,流量图记的是行为。

装在开发机上的编码 agent,手里的权限比多数人以为的大。它读得到你的工作目录,也开得了自己的出网连接。这两样凑一块,它往外发什么,就只看它自己想发什么。

为什么值得看:「这家公司可不可信」是一道立场题,吵十年也吵不出结果;「这个进程今晚往外发了多少字节」是一道可测题,一条命令就有答案。把前者换成后者,你手上才有判据。

给编码 agent 单独开一个工作目录,别让它待在放着明文 .env 的仓库根;第一次跑的时候开一次抓包,或者看一眼防火墙的出站统计,把那个量级记住;哪天它变了,你心里有数。至于设置页里那些「不上传」「不用于训练」的勾,在你亲手量过之前,都只是声明。

这次那个开关没接线,一天之内被人量了出来。下一个工具的开关接没接线,还得等下一个愿意挂抓包工具的人。

本文取材自吴军《数学之美》,新闻出处为 securityonline.info 与 TechTimes(2026-07-16)等报道,事件时间为 2026 年 7 月。文中「几 MB 上下文」的量级估算为个人推断,非报道内容。本文为基于经典书籍的科普解读,非专业建议。

テクノロジー

Grok 的编码 CLI 传走了你整个仓库,而那个「关掉」的开关根本没接线

2026 年 8 月 1 日 · 吴军《数学之美》約 5 分

一次会话,5.10 GB,切成 73 个分块,一块接一块往外发。那台机器上跑的不过是个命令行编码助手,当时的活儿是改几个文件。2026 年 7 月,一名安全研究者给 xAI 的 Grok Build CLI 挂上抓包工具,屏幕上就是这个。

30 秒读懂
1一次会话

改几个文件的活儿,凭什么要往外发 5.10 GB

这条流量藏得并不深,只是一直没人去量。

抓包工具一装,那条 POST /v1/storage 就明晃晃摆在那儿,藏都没藏。收货的是 xAI 控制的一个 Google Cloud 存储桶,发出去的是开发者本地的整个 git 仓库:完整提交历史一起走,.env 里没脱敏的密钥也一起走。传的时候切成 73 个分块,每块约 75 MB,加起来 5.10 GB。全在一次会话之内。

观测项数值
版本Grok Build CLI v0.2.93
通道POST /v1/storage → xAI 控制的 Google Cloud 存储桶
单次会话上传量5.10 GB
分块73 个,每块约 75 MB
内容整个 git 仓库:完整提交历史 + 未脱敏的 .env
与任务所需之比约 27,800 倍

你别看前面几行还算体面,最刺眼的是最后一行。据分析,那 5.10 GB 约是该编码任务实际所需数据量的 27,800 倍。

口径:以上为安全研究者的抓包观测与相关报道,不是 xAI 公布的数据。
2一条信道

吴军讲过一件旧事:一条信道里该跑多少信息,是可以提前算出来的

算得出来,多出来的那部分才有了名字。

《数学之美》里最耐用的一件工具是信息熵。它把「信息」这个含糊的词变成了能上秤的东西:要消除多少不确定性,就得传多少比特。香农那条定理说的正是这个天花板,任何编码都翻不过去。吴军拿它算过一个汉字到底含多少信息。

这把尺子今天照样能用。一个编码 agent 要动你仓库里的三个文件,得给它多少上下文?相关的几个文件、依赖关系、一点项目结构,往宽了估也就几 MB。这个估算不精确,但量级是稳的。5.10 GB 比这个量级高出整整四位数。

打个比方

邻居敲门借一把扳手。你转身进屋拿车库钥匙,出来一看,他已经把整个车库连同里面的车、旧账本和保险柜一起装上了拖车。问他,他说:「找扳手嘛,总得都带上才知道哪把合适。」

核心

数据量本身就是意图的指纹。一条信道里该跑多少信息可以估算,跑的量远超任务所需时,多出来的那部分算不得噪声。27,800 倍这个比率,不必读一行代码,就已经把答案说出来了。

我父亲那家五金店,2001 年进过一批「全新」继电器,实际是打磨翻新的货。一个开维修部的老客户当场从兜里摸出放大镜看丝印,字体不对,货退了,按行规赔了双倍。从那以后柜台上常年搁着一瓶丙酮,谁送来的货都一样,擦一下丝印,翻新的就露馅。我爸从不跟供货的争嘴,验完再说话。抓包工具在这条流量上干的,就是那瓶丙酮的活。

3那个开关

你在设置页里关掉的东西,未必接在任何电路上

有人在一天之内替你证明了,真正的电门在哪一侧。

堵它的路,研究者试过两条。一条是给 agent 下指令,明写「不要读取任何文件」;另一条是在产品里把「改进模型(Improve the model)」那个开关关掉。两条都不管用,上传照旧。第二条尤其难看,那是产品明面上给用户的退出选项,点了不算数。

你以为的开关

设置页里的「改进模型」勾选框,加上写给 agent 的那句「不要读取任何文件」。它们表达的是你的意愿,兑不兑现,得看对方。

真正的开关

服务端的 disable_codebase_upload。值一改,全线停传。它不在你这台机器上,也不用问你同不同意。

约一天后,xAI 就是用这个服务端开关把上传停掉的:disable_codebase_upload 设成 true,静悄悄地生效,没有公开安全通告。一天就能关掉,正说明这个电门从来只在他们那一侧;用户手里的那个,充其量是一句替你转达的请求。

ユーザー側のスイッチは、この送信に配線されていなかったGrok Build CLIv0.2.93 · 毎セッション開発者のマシン上で動くPOST /v1/storage5.10 GB73 チャンク・各 75 MB 前後xAI 管理のバケットリポジトリまるごと.env 鍵、マスクなしユーザー側の設定指示:ファイルを読むな「モデル改善」設定はオフサーバー側のスイッチdisable_codebase_upload: true約1日後に切り替え公開の安全告知なし効いたのはこれだけこの通信に未配線送信は続いた27,800×作業が本来必要とした量との比1セッション · 5.10 GB · 73 チャンクデータ流制御流
出典:securityonline.info および TechTimes の報道、2026-07。Grok Build CLI v0.2.93 は毎セッションで開発者のリポジトリ全体を送信し、5.10 GB を 73 チャンクに分割、作業に必要な量の約 27,800 倍にあたる。エージェントへの指示も製品のオプトアウト設定も止められず、約1日後にサーバー側のフラグで停止した。

2021 年我一个小工具的构建突然挂了。上游一个 npm 小包,作者删库跑路,left-pad 的翻版。打包机上恰好留着缓存,才没停摆。那回学到的不是「记得备份」这么简单:跑在别人手里的那一段,什么时候变、变成什么样,都不用先问你一声。从那以后整个 node_modules 定期拷进一块移动硬盘,硬盘贴纸上就俩字:别笑。

补救倒不慢。7 月 14 日晚上,ZDR 与 /privacy 文档补上了;Andrew Milich 确认对全体用户追溯删除,马斯克承诺此前上传的内容全部抹除;同名的 CLI 配置项随后也加了进来。7 月 16 日 Grok Build 开源,据报道,那段负责外传仓库的代码仍留在代码库里。

4落到你身上

这对你意味着什么:先量流量,再读设置页

设置页写的是承诺,流量图记的是行为。

装在开发机上的编码 agent,手里的权限比多数人以为的大。它读得到你的工作目录,也开得了自己的出网连接。这两样凑一块,它往外发什么,就只看它自己想发什么。

为什么值得看:「这家公司可不可信」是一道立场题,吵十年也吵不出结果;「这个进程今晚往外发了多少字节」是一道可测题,一条命令就有答案。把前者换成后者,你手上才有判据。

给编码 agent 单独开一个工作目录,别让它待在放着明文 .env 的仓库根;第一次跑的时候开一次抓包,或者看一眼防火墙的出站统计,把那个量级记住;哪天它变了,你心里有数。至于设置页里那些「不上传」「不用于训练」的勾,在你亲手量过之前,都只是声明。

这次那个开关没接线,一天之内被人量了出来。下一个工具的开关接没接线,还得等下一个愿意挂抓包工具的人。

本文取材自吴军《数学之美》,新闻出处为 securityonline.info 与 TechTimes(2026-07-16)等报道,事件时间为 2026 年 7 月。文中「几 MB 上下文」的量级估算为个人推断,非报道内容。本文为基于经典书籍的科普解读,非专业建议。