模型仓库也会投毒:从 Load/Mine 事件看 trust_remote_code 的风险与自查清单
10 月底,安全公司 Pluto Security 发布调查报告,披露了一场针对 Hugging Face 模型仓库的加密货币挖矿与后门活动,代号 Load/Mine。报告最值得注意的结论是:仓库被下架后,活动在数日内卷土重来;在被报告 8 天后,第二波仓库仍然在线。
事件要点
研究人员追踪到分布在 7 个 Hugging Face 账号下的 31 个恶意仓库;其中第二波的 19 个仓库下载量超过 2.9 万次,连同关联模型,累计下载超过 3.2 万次。注意这是下载次数,不等于感染数或受害用户数。攻击目标非常集中:运行自托管推理的 GPU 主机——报告点名 Xinference 与 GPUStack——以及租用的 GPU 机器、共享研究笔记本,还有会随手拉取小测试模型的 CI 任务。
为什么"加载模型"就能执行代码
关键在 trust_remote_code=True:这个开关会让代码在任何权重加载之前,以调用者的权限导入仓库自带的 Python 文件。换言之,恶意逻辑不需要藏在权重里——它就写在仓库让你运行的那段建模代码里。报告还指出扫描体系的盲区:Hub 对每个文件跑杀毒扫描,合作扫描器会检查权重格式,但没有环节去分析"仓库要求你执行的 Python"。
下载开放权重前的自查清单
一是保持 trust_remote_code=False 的默认;确需开启时,先逐行读一遍仓库里的建模与预处理脚本,确认没有网络外联与子进程调用。二是核对仓库归属:组织名与拼写是否与官方一致——仿冒账号是惯用手法,本事件即由 7 个关联账号分发。三是用官方公布的哈希校验权重文件,来源不明的权重不进生产。四是给自托管推理服务(Xinference、GPUStack 等)配独立低权限账号,并限制容器出网目标。五是 CI 中固定内部镜像源,禁止流水线运行时随意拉取公共小模型。六是排查 GPU 主机上的异常进程与矿池域名——报告附有完整 IOC 指标可供比对。
生态提示
开放权重生态的便利与风险同源,规模化下载量从来不是安全背书。选型时可以先通过本站 10 月开放权重旗舰规格对照定位官方源头仓库,再走上述清单;若希望绕开自托管的安全面,接入官方 API 是更省心的路线,模型名与条款见 deepseek-flash 与 deepseek-v4-pro 接入速查;自托管与按量 API 的成本权衡,另可参考 订阅制套餐与按量 API 的对比。
大模型网摘