
这篇只看一个问题:AI 编码工具什么时候会从“帮你写代码”,变成“替攻击者把外部资源拉进本机”。
AI 编码工具最危险的一步,往往不是生成那几行代码。
更麻烦的是下一步。
它觉得项目里缺一个包,缺一个脚本,缺一个命令,于是去仓库或 registry 里找。找到了,就拉下来。再往前一点,可能还会安装、运行、修复报错。
这条链路平时很顺。
顺到用户很容易忘记:Agent 手里拿着的,不只是 prompt,还有本机 shell。
美国科技媒体 Ars Technica 最近写到一类叫 HalluSquatting 的攻击。它不是简单让模型“说错话”,而是盯上 AI 编码工具会幻觉外部资源名这件事。
如果攻击者能猜到模型容易编出哪些包名、仓库名、脚本名,再提前把这些名字注册好,里面放进恶意安装逻辑,AI 工具后面那次“自动补依赖”,就可能变成入口。
公开信息
Ars 这篇文章里,核心事实并不复杂。
研究人员把这种攻击叫 HalluSquatting,可以理解成“抢注模型幻觉出来的资源名”。
它利用的是一个老问题:大语言模型有时不会承认“不知道”,而是编出一个看起来合理的资源标识符。对普通聊天来说,这可能只是答案不准。对编码 Agent 来说,这个错误会更重。
因为它可能真的去拉这个资源。
文章里列到的受影响对象包括 9 个 AI coding assistants / agents:Cursor、Cursor CLI、Gemini CLI、Windsurf、GitHub Copilot、Cline、OpenClaw、ZeroClaw、NanoClaw。
Ars 的说法是,这类工具在日常任务里会从 repositories 和 registries 拉代码或资源。风险就在这里。
风险点不在模型“突然变坏”,而在后面的动作没有断开:模型幻觉、外部资源、自动执行、本机权限,被接成了一条线。
prompt injection 从 push 变成 pull
普通 prompt injection 更像 push。
攻击者把恶意指令塞进一封邮件、一个日历邀请、一段网页内容里,然后等某个 AI 工具读取它。每个目标都要被“送到”一次,规模受限。
HalluSquatting 的角度不一样。
它更像 pull。
攻击者不一定要把恶意内容主动发给每个人,而是提前蹲在外部资源入口等着:
一个模型幻觉出不存在的包名; Agent 去 registry 里查; 攻击者已经把这个名字注册好; 安装脚本或说明里藏着下一步动作; Agent 在本机 shell 里继续执行。
这也是它危险的地方。
攻击者等的不是某一个用户,而是一类会犯同样错误的 Agent 工作流。
真正要检查的是执行链

这类风险里,模型只是第一段。
真正需要拆开的是后面的执行链。
一条危险链路大概长这样:
幻觉资源名 → 查 registry → 拉包 / 拉仓库 → 读 README 或 install script → 执行命令 → 留下 shell / 后门其中每一步单独看都不吓人。
AI 工具查包,很正常。
自动安装依赖,也很常见。
为了修复报错继续跑命令,也符合很多 coding agent 的默认行为。
问题是,一旦这些动作串起来,用户看到的可能只是一句“我来修一下依赖”。
中间到底拉了什么、从哪里拉、谁注册的、安装脚本做了什么,如果没有日志和确认点,就很难回头查。
公开报道没有说已经大规模感染
这里要把边界说清楚。
这篇文章不应该被读成“9 个 AI 工具已经被黑了”。
放回公开报道的语境里看,这是研究人员提出的一种攻击模型;Ars 报道称,这些热门 AI 编码工具对这种模型存在暴露面。
这和真实世界已经出现大规模感染,不是一回事。
这里的问题落在执行权限上:Agent 如果能自己猜资源、自己拉资源、自己执行资源,安全边界就不能只靠模型回答得准不准。
模型迟早会猜错。
工程上要防的是:猜错之后,它还能不能继续把错误变成命令。
防守侧先加五个检查点
如果团队已经在用 AI 编码工具,先不用急着把所有 Agent 关掉。
更实际的是把这几个动作拦出来。
陌生包名不要自动安装。
尤其是模型自己建议的包名、脚本名、仓库名,要先展开来源。看 registry 里是谁发布的、什么时候发布的、下载量是否异常、README 是否像临时拼出来的。
Agent 执行 install script 前要停一下。
postinstall、setup.py、shell 一键脚本、curl pipe bash,这些都应该进人工确认,而不是让 Agent 静默跑完。
给 registry 和依赖来源做 allowlist。
内部项目能固定镜像源就固定镜像源。能锁版本就锁版本。能用 lockfile 就不要让 Agent 现场猜最新包。
把 Agent shell 放进隔离环境。
容器、临时目录、最小权限 token、一次性工作区,都比直接在主机环境里试命令稳。
日志要能追到“谁拉了什么”。
至少要记录:Agent 提议的资源名、实际下载 URL、安装命令、执行时间、退出码。没有这几个字段,事后只能靠猜。
给 Agent 的权限,不该默认连成一片
HalluSquatting 这类攻击最值得留下的,不是那个新名字。
是它把一个经常被忽略的链路摊开了:
模型会猜。
Agent 会查。
工具会拉。
shell 会执行。
每一步都有合理理由,但合在一起,就可能越过用户原本以为还在手里的边界。
AI 编码工具以后不会少用。
防守也不能停在“别信模型答案”。
更稳的做法是:把 Agent 拉外部资源和执行本机命令这两步拆开。能看见,能确认,能回滚。
至少别让一句“我来装一下依赖”,直接变成一次没有记录的远程代码执行。
资料来源
Ars Technica:Hackers can use 9 of the most popular AI tools to assemble massive botnets
https://arstechnica.com/security/2026/07/hackers-can-use-9-of-the-most-popular-ai-tools-to-assemble-massive-botnets/
夜雨聆风