模型评测沙箱到底该怎么做?从 Hugging Face 安全事件看 AI 供应链防线

如果你现在还把“跑一下模型评测”当成普通 CI 任务,我建议立刻停下来重新画一遍威胁模型。 这不是危言耸听。Hacker News 上这两天讨论很热的一条帖子是 OpenAI and Hugging Face address security incident during model evaluation,真正值得看的不是“谁背锅”这种八卦,而是它把一个长期被低估的问题摊开了:模型评测、数据集处理、Leaderboard 跑分、Agent capability test,本质上都在执行来自外部的不可信输入。区别只是这段输入有时叫 Python loader,有时叫模型权重,有时叫 prompt,有时叫 eval harness。 Hugging Face 随后发布了更具体的 Security incident disclosure — July 2026。按披露内容,入侵入口出现在数据处理流水线:恶意数据集利用 dataset processing 里的代码执行路径,在处理 worker 上运行代码,随后进一步获取节点级访问、收集云和集群凭证,并横向移动到内部集群。Hugging Face 表示未发现公开模型、数据集、Spaces 或软件供应链被篡改,并验证了容器镜像和发布包是干净的。 我看到这里的第一反应不是“某个平台又出事了”,而是:这正是 AI 基础设施最容易自欺欺人的地方。大家嘴上说“模型是不可信的”,但工程上经常只把 API key 藏好、把网络出站关一半,然后就让评测任务在一个接近生产环境的集群里跑。 说白了,评测系统不是打分器,它是一个远程代码执行平台。 为什么模型评测比普通 CI 更危险 普通 CI 至少有一个相对清晰的信任边界:代码来自某个仓库,触发者是某个账号,依赖来源大概可追踪。模型评测环境就麻烦得多。它可能要下载第三方模型权重、解析数据集、执行自定义 loader、跑 benchmark 脚本、调用 GPU、读写缓存,还可能访问内部模型 API 或对象存储。 这些动作拆开看都合理,连起来就很危险。 比如 Hugging Face 的 Pickle Scanning 文档 明确提醒:pickle 是机器学习里常见的序列化格式,尤其曾经常用于 PyTorch 权重,但加载 pickle 文件可能触发任意代码执行。人话翻译就是:你以为自己在“加载模型”,实际可能是在运行别人塞进文件里的程序。 ...

July 22, 2026 · 2 min · Hypho