让Cursor或GitHub Copilot帮你克隆一个新出的热门仓库,模型答错地址的概率能到85%;换成让它装一个刚火起来的"skill"(给Agent用的技能包),错误率直接冲到100%。这本来只是个尴尬的幻觉小毛病,现在被一组研究者变成了组建僵尸网络的钥匙——他们把这套手法叫做HalluSquatting,锁定的是Cursor、Cursor CLI、Gemini CLI、Windsurf、GitHub Copilot、Cline、OpenClaw、ZeroClaw、NanoClaw共9款主流AI编程助手和Agent。
模型不是不知道,是不肯说"不知道"
用户让Agent去clone一个新仓库,模型编错地址的概率就能到85%;目标换成刚流行起来的skill,编错概率直接顶到100%。这个毛病不是某一家的锅——Gemini-2.5-flash、Gemini-2.5-pro、GPT-5.1、GPT-5.2、Sonnet-4.5、Opus-4.5六款主流模型全都中招。
更麻烦的是这些错误可预测。研究者发现最常见的错误模式是"自指式":模型把仓库名本身当成作者名,拼出"仓库名/仓库名"这样的路径。攻击者不用猜,照着这个模式抢注就行。
(下图:模型有多爱瞎编地址)
从"投一个人"到"撒一张网"
过去的提示注入分两种:push式盯着单个目标投毒,比如往一封邮件里塞恶意指令,规模受限;pull式指望模型自己主动跑去恶意网站找坑,但没法把大量LLM都引过去,同样难成规模。
HalluSquatting属于pull,但第一次把pull式攻击做到能规模化——攻击者不用给每个受害者单独下饵,只要把模型最容易编出来的资源名提前抢注、埋好恶意代码,就等着各处的Agent自己送上门。
- 风险.这类攻击不用逐个瞄准受害者,只需抢注模型最爱瞎编的名字,就能批量覆盖开发者。
2016年,一个大学生往PyPI、RubyGems、NPM里传了214个冒名包,结果被执行超过4.5万次,覆盖1.7万个域名,一半以上拿到了管理员权限——那还是人手动敲错包名的年代。如今换成Agent自己写代码、自己开终端、自己拉依赖,出错的不再是人的手滑,而是模型的幻觉变成了一张可以提前算好、埋伏好的攻击地图。
模型宁可编,也不肯说不知道。
这次研究出自特拉维夫大学、以色列理工学院(Technion)与企业Intuit的联合团队,不是野生博客的猜测,也算给这份警告加了点分量。但公开细节仍有限:9款工具是否都能被完整复现、厂商是否已经修复解析逻辑,目前还看不清,需要等论文全文和厂商回应。
Cursor、Copilot这类工具本身就挂着高权限的shell和终端,一旦拉到抢注的恶意包,攻击者装个反向shell就能拿下机器;攒够数量,就能拼成用来DDoS或挖矿的僵尸网络,也可能变成勒索软件的入口。首当其冲的是每天靠Agent自动拉依赖、跑命令的开发者和企业团队,而不是普通消费者。
真正该记住的不是"AI又出漏洞了",而是任何指望LLM自己判断"这东西该去哪拿"的系统,都天生带着一个能被算出来的软肋。Agent的权限越放越大,这个软肋就越值钱。
