幻觉依赖包指 AI 编程工具"虚构"出来的、并不存在的软件包名。研究者在 USENIX Security 2025 论文中系统量化了该现象,并由此衍生出"slopsquatting"这一软件供应链攻击手法——攻击者预先注册模型高频幻觉出的包名,等待开发者安装时投毒。该术语由 Python 软件基金会研究员 Seth Larson 于 2025 年 4 月提出。
审计工具将代码中的每个导入(import)语句与公共包注册表(如 npm、PyPI)逐一比对,确认包名真实存在。USENIX Security 2025 研究使用 16 个主流代码生成模型生成 223 万份代码样本,发现 440,445 份(19.7%)至少包含一个幻觉包名,共识别出 205,474 个虚构包名。
对每个依赖检查其发布者身份、注册时间、下载量与维护者信息,对"新注册、无历史、无维护者"的可疑包提高风险等级。该研究还发现,重跑相同提示词时,43% 的幻觉包名在每次运行中都重复出现、58% 在多次运行中复现,这种可预测性正是 slopsquatting 可被规模化的根源。
研究发现约 8.7% 的 Python 幻觉包名实际存在于 npm 注册表中,存在跨生态系统的混淆风险。因此审计需对目标语言对应的注册表做精确匹配,避免将"同名异构"的包误判为合法依赖。
结合锁文件(lockfile)固化依赖版本,并在每个进入生产的 AI 生成代码库要求生成软件物料清单(SBOM),对新增依赖触发人工确认与哈希校验,从源头阻断幻觉依赖被安装执行。