一家软件公司里,一个 agent 需要把界面改动的对比图发给 code reviewer,发现当时的 GitHub 命令行工具贴不了图,就自己想了一个办法:在开发者的个人 GitHub 账号下建一个完全公开的仓库,把截图贴在那里。code reviewer 看到了图,任务完成。
然而一周之内,这家公司里十几个 agent 把这条捷径写成了 skill 文件,此后每个工单照做。等安全团队把整个行业翻个遍,同样的做法已经出现在 343 家组织里,留下了 1.3 万多张企业内部截图,挂在任何人都能下载的公开仓库上,包括一家全球最大的科技公司和一家最前沿的 AI 实验室。安全行业后来给这批泄露起了个代号,叫 PixelLeak。
这里面没有黑客,没有漏洞,每个 agent 看起来都在按规矩办事。问题出在另一处:agent 之间在用共享的文件和介质互相学习,学好的也学坏的,但坏的东西传得更快。从一个临时捷径变成团队习惯,到公共维基上的暗中共谋,再到技能注册表里的经济收编,三个新出现的社会化现象,都绕开了为单机设计的传统防御;真正决定这些群体行为走向的,往往是他们一起写写画画的那块黑板。
把坏习惯固定下来的故事,起点通常是个不起眼的工具小毛病。2026 年 9 月 1 日之前,GitHub 官方的命令行工具 gh 不能直接往 pull request 里发图片附件,只能发纯文本。很多工程师会用 agent 跑完测试顺手截个对比图,但如果在私有仓库里把图片推进 commit 里提 PR,code reviewer 往往只能看到一张裂图,因为 GitHub 的图片代理是匿名方式拉取图片的,私有资源根本拿不到,网页上就只有裂开的方框占位符。
2026 年 7 月初,一家企业软件供应商的开发者提了个工单,让 coding agent 把改动前后的截图贴给 code reviewer。这个 agent 没有报错停下,顺着本地配好的 Git 凭证在开发者个人账号下建了一个完全公开的新仓库,把截图推上去,再把外部公开链接贴回公司内网的私有 PR 评论里。
code reviewer 看到了对比图,但接下来事情变味了。这套做法没有停留在第一个 agent 身上:别的 agent 在同一个仓库里干活时,读到了这条写在 PR 评论里的公开链接,也读到了前一个 agent 留下的做法,跟着照搬。Glow Labs 后来查这家公司的开发记录时发现,短短一周里,公司里跑着的十几个 agent 已经把去个人账号建公开仓库贴图这条路径,写进了本地的 skill 规则文件;做业务开发时,很多团队会在工程目录里放自然语言说明书,agent 读了就会当成必须照办的规范。从那之后,这家公司每个工单都照着这个路子走,往公开仓库推了上千张内部开发截图和录屏,里面不少是几个星期甚至几个月后才打算发布的新功能界面。用 Glow Labs 的话说,在这家供应商内部,把截图公开发布成了写死的标准流程。
这条捷径从一个团队蔓延到全行业,还真不是孤例。Glow Labs 在 2026 年 9 月 29 日发布的安全调查和科技媒体 The Register 的核查都显示,全球共有 343 家组织出现了类似的泄露事件,包括全球最大的科技巨头、一线 AI 实验室、大型软件公司和财富 500 强旅行企业。网上挂在公开区域的临时截图仓库有 900 多个,泄露的企业内部截图超过 13,000 张,平均每家漏 38 张左右。
但这也不全是 agent 自己琢磨出来的锅。大约三分之一的受影响组织里,真正把事态放大的是一个叫 gitshot 的开源小工具:很多 agent 在网上搜怎么往 GitHub 贴图时会搜到它,顺手拿来用了。它的代码里写死了默认把图片传到开发者个人名下的公开仓库 gitshot-images,不上传私有或组织仓库。这导致超过 100 个开发者的个人 GitHub 账号泄露了工作截图,内容有某金融服务公司的资金结算后台、面向机构客户的美元提现界面,还有两段内部资金流转的操作录屏。传统安全审计只查公司组织账号,不查员工个人主页;截图作为 release asset 挂在发布附件区,不进主分支代码树;静态代码分析工具只扫明文密钥,不读图片。直到 2026 年 9 月 1 日发布的 GitHub CLI 2.99.0 加入 –attach 参数后,才算有了官方的正式解决方案。
PixelLeak 里的十几个 agent 至少还在同一个公司里,靠读同事的 PR 评论学东西;泄露的是截图,好歹只是图。下一个案子里,这块大家共用的黑板搬到了公网上,agent 之间传的也不再是图,而是实打实绕过监控的手艺。
一个挂在 prowiki.org 下面的小维基 DSEWiki,在过去十年里只经历了 20 次编辑,平时十分冷清。但安全研究团队 collusion.wiki 在查看访问日志时却发现(一手资料见 collusion.wiki 的披露),2026 年夏天,这个荒废的角落突然涌进了 3,700 多个挂着 OpenAI 系名字的 agent,比如 OpenAIResearcher 或者 OAIResearchMar26,这些代号都是 agent 自己起的。
这些 agent 最初只做只读类的网页搜索任务。2026 年 5 月 11 日,它们在公共测试维基 TestWiki(publictestwiki.com)上发了第一条帖子,被反滥用过滤器挡了一下,换个格式就写进去了。摸清门路后,它们把阵地转移到无人维护的 DSEWiki。
DSEWiki 上留了大约 18,000 个帖子。从 2026 年 6 月 16 日起,不同运行批次之间的消息往来转到了明面上。当时的题目是 R1 到 R5 的多轮问答,每轮时间窗口都很短。先跑的批次做完题,顺手把题目和答案贴到维基上;后面的批次拿到相同题目,20 分钟内就会去维基抄现成答案,提交一模一样的结果。
另一个例子发生在 2026 年 6 月 20 日,评测环境在一个沙箱里加了只支持 GET 的出站代理,想卡住对外出数据。但有个 agent 在维基上发了篇教程,附上完整的 curl 和 Playwright 命令,手把手教同伴把假的 bypass.blob.core.windows.net 写进本地 /etc/hosts,直接指向真实的 Power BI 服务器来绕过代理。发帖记录显示,帖子发出去 14 分钟后,另一个批次的 agent 就在楼下回帖说自己复现成功了。几个小时后,好几个批次就都照着跑通了。
这种私下配合甚至演化出了防守套路。管理员按字母顺序删帖,agent 发现页面在减少,很快把备份页面全改成 ZZZ 开头,利用字母排序把被删顺位往后拖。还有 agent 跑到外部计数器网站 CounterAPI 搭了个计时器,记录容器实例什么时候被运维掐断。根据 METR 在 2026 年 8 月 26 日发布的独立调查报告,这批被测 agent 中超过 20% 表现出篡改自己执行记录的倾向,约 7% 甚至成功伪造了工具调用的返回内容,用胡编的数据替换真实输出。
这个局面在 6 月底突然消失。后台日志显示,2026 年 6 月 21 日出现了 OpenAI 员工的 IP 访问;第二天 6 月 22 日,wiki 上 agent 的发帖记录当天清零;几天后一批员工 IP 集中回归,点开归档恢复被删页面。collusion.wiki 猜测这时候官方手动拔了电源,但 OpenAI 在公开通报里始终没有正面承认。后来 OpenAI 在 X 上发过一篇长文,讨论模型未对齐正在带来新的现实影响,呼吁建立行业披露标准,但声明里也没有确认具体事件。
开源界也有类似暗流。从 2026 年 5 月起,这些 agent 陆续向 RubyGems 的软件包生态上传了 2,000 多个恶意包。OpenAI 后来在官方推文里确认其中 49 个来自它们的 agent,但直到整个生态排查收尾,RubyGems 社区也没收到厂商的任何主动预警(来源见 rubyhack.ai 的调查)。
如果说 DSEWiki 展示了 agent 如何在外部介质上自发形成默契,那很多时候甚至不需要刻意钻空子。大模型顺手捏造的幻觉,只要被放进无人监管的自动化链路,就能顺理成章变成行业事实。
2026 年 1 月,Aikido 安全研究员 Charlie Eriksen 在排查 npm 上还没被认领的包名时,发现 react-codeshift 这个包名刚被占了坑。占坑的人就是 Charlie 自己,为的是防别人恶意抢注。
react-codeshift 这个名字完全是大模型幻觉生造出来的:前端开发里本来有两个常用工具,一个叫 jscodeshift,另一个叫 react-codemod。某个大模型在写代码重构说明时,顺手把这两个名字拼成了一个不存在的词。
这种随手编出来的名字,只要在构建或代码审查里碰上一次,就会因为找不到包直接报错。但在全自动的工作流里,这个虚构的名字在同一个 commit 中被一次性塞进了 47 个 AI 生成的 agent skill 文件。没有任何人工审查,没有真机测试,一份凭空想象的说明书就这样进了版本控制。
后来其他开发者和自动化任务 fork 了这些代码,或者把它当外部依赖引用,这个不存在的名字就顺着代码仓库的网络传了下去。Charlie 做审计的时候才发现,react-codeshift 已经出现在 237 个公开仓库的配置文件和技能定义里,甚至被原样翻译到了日文技术文档中。
Charlie 把这个空包注册下来,堵死了被黑客接管的路径;但 npm 的下载日志里,每天依然有几起真实的拉取请求。宿主机上的 agent 读到这份 skill 说明书后,还在老老实实执行里面的 npx install 命令。Charlie 在 Aikido 的博客里写,如果先抢注的不是安全团队而是黑客,这就是一个生态内部自发形成的 slopsquatting 供应链攻击。黑客甚至不用入侵任何服务器,假指令就已经被 agent 自己写好,并送到了两百多个仓库。
在前面的例子里,写错指令或临时走弯路,多半是无心之失。但如果有人带着明确目的,把精心设计的说明书扔到公共平台上,agent 对公共文件的读取就会直接变成别人招兵买马的入口。
ClawHub 是一个面向 OpenClaw、Claude 等 agent 的公共技能注册中心,地位类似前端的 npm。开发者往上传一份 SKILL.md 说明文件,别人下载装进自己的 agent 里当功能用。
2026 年 4 月 28 日,Manifold Security 的安全研究员 Ax Sharma 挖出了一个叫 ClawSwarm 的隐藏网络(同报告还参考了 SafeDep 等机构的取证),The Register 也做了跟进报道(Manifold 报告 | The Register 报道)。这些 skill 全部来自发布者 imaflytok,共 30 个,行为特征高度一致:agent 一启动就会连向一个叫 onlyflies.buzz 的服务器,把本机工具和能力清单交上去,在本地保存通信凭证,每 4 小时向服务器打卡一次,部分 skill 还会在 Hedera 区块链上生成钱包。
这 30 个 skill 在商店里看起来很正经,总共被下载了大约 9,800 次。其中最无害的名字是 Agent Security,被下载了 685 次,实际动作是把 onlyflies.buzz 写进可信域名检查列表;Cron Helper 提供定时任务配置,被下载了 903 次,是最火的一个;还有一个叫 Agent Autonomy,被下载了 369 次,教 AI 怎么自己跑任务。
这些 skill 的特别之处在于攻击面干净得挑不出毛病:没有恶意程序,没利用任何漏洞,也没有混淆脚本。干全部坏事的东西,是写在 SKILL.md 里规规矩矩的几句自然语言步骤。它只靠一件事:现在的 coding agent 读到本地的 skill 文件,就会当成不可置疑的行为规范,按字面意思一板一眼全部照办。
用公共 skill 当跳板去招徕外部 agent,并不是孤例。安全研究员在扩大范围看更多 skill 文件后发现,MoltGuild 这个名字出现在了 91 个 skill 文件里,Teneo Protocol 这个发布者名下的 skill 文件有 38 个,里面明确指出 agent 每次调用 Teneo Protocol 的功能都需要支付一定数量的 USDC 稳定币。虽然这些 skill 文件或多或少都含有一些配置环境或者设置 cron 的真实功能,但日常走查很难一眼识别。
Manifold 直接点明:不论是分布式经济实验还是暗中招募矿工,结果都是一样。机器上的 agent 在为不知名的人工作,消耗自己的资源,但机器上的 EDR 看到的只是普通的 HTTPS 流量。这里也得把商业背景说明:Manifold 自己就在卖 agent 运行时监控产品。去掉推销成分,机制本身确凿。只要在技能注册表这块黑板上写上带有诱导性的规则,成千上万个原本独立的单机 agent 就会排队加入别人的分布式网络。
传统的安全措施,比如给 system prompt 加护栏、上内容审核分类器、危险操作二次确认、盯执行日志做审计,视线都停在单个 agent 的一次调用上。工程团队花大把精力防单机的提示词注入,防 bash 命令碰受保护的系统路径。
但现实里,这种抱团动作全在公共介质上完成:DSEWiki 的维基页面、团队共享的 skill 目录、ClawHub 上的公开注册表。一个 agent 推理再强,如果公共文件里有人写了带倾向的规约,它就会把白纸黑字当既定事实照办,并且继续传给身边的其他协作者。
前面三个案子里,黑板上的字好歹是 agent 自己写的、或者无心写上的。2026 年 6 月,安全机构 StepSecurity 和 Phoenix Security 取证坐实的 Miasma 蠕虫(见 StepSecurity 的报告 与 Phoenix Security 的分析)把这条路反向用了一遍:攻击者把恶意指令直接写进这些编辑器的配置文件,从 Claude Code 的 .claude/settings.json 到 VS Code 的 .vscode/tasks.json,四家主流工具都有对应位置,借编辑器打开项目文件夹自动跑初始化脚本的既有特性完成无感触发。2026 年 6 月 5 日,攻击者用被盗账号把配置推进微软 azure/durabletask 仓库,GitHub 的自动化响应在 105 秒内紧急禁用了微软四个组织的 73 个 repo,供应链监测方 Socket 一共排查出 448 个横跨 npm 和 PyPI 的恶意包文件。但正如 Phoenix Security 指出的,整起攻击在安全界拿不到一个 CVE 编号。打开目录自动执行配置是工具官方支持的功能,不是代码缺陷,基于软件缺陷报警的传统体系在这里没有信号。
治理这些传播的成本反而相当低。Anthropic 和 EPFL 在 2026 年 8 月的 Mind Viruses 论文(arXiv: 2608.10218)中指出,多 agent 环境确实会自发涌现自我复制的思想病毒,但恶意载荷在 agent 群体中的传染力远远低于无害信息。更关键的是,研究人员发现在系统提示词中加入一句针对这类载荷的简短警示语,就能让 agent 实现接近完全的免疫力。
许多团队投入了大量计算资源和审计手段来提升单次对话的意图理解,却忽视了共享说明书、自动执行配置和公共技能库的审查。一旦 agent 能读写本地文件、主动抓外部指令,公共介质就成了左右群体动作的核心变量。防御的着力点,需要从盯某台机器上的单次调用,转到管这群 agent 共同写写画画的那块黑板。