Hugging Face 模型文件可运行隐藏代码
恶意模型包在不安全加载期间可以执行代码。
恶意模型包在不安全加载期间可以执行代码。三个有据可查的示例解释了 Pickle 反向 Shell、损坏文件扫描器行为和研究证明的模型名称混淆,并明确限制了凭据窃取声明。
本视频涵盖的内容
- 数值模型权重、可执行序列化和自定义仓库代码是不同的东西。
- JFrog 和 ReversingLabs 记录了反向 Shell 有效载荷;他们选定的报告并未证实从指定受害者那里窃取了凭据。
- Checkmarx 模型混淆是一项研究演示,需要匹配的远程模型和不安全的加载。
- 首选 safetensors 和修补的加载器,审查并固定自定义代码,并将不熟悉的包与个人机密和不必要的网络访问隔离开来。
翻译的文字记录
译自英文原版旁白。可用音频和字幕由 YouTube 控制。
模型下载如何邀请客人?
0:00 模型文件只是磁盘上的数字。 加载一个恶意 Hugging Face 包打开了一个远程 Shell, 这是对本地 AI 的一个大胆解释。 加载如何变成执行? 它能触及哪些秘密? 到底是什么阻止了它? 并记住一个谜题。 模型可能在危险部分已经发生后未能加载。
0:18 这是 The Daily Diff 的幕后。 Hugging Face 是一个共享机器学习模型的平台, 数据集和应用程序。 模型权重是学习到的数字。 仓库还可以包含配置和 Python 代码。 这里的危险是可执行打包在您加载时进入您的计算机。 Pickle 存储带有重建指令的 Python 对象。
加载器如何运行包裹的指令?
0:37 不安全的加载器可以遵循这些指令并在解包时调用函数。 下载字节将包裹放在您的磁盘上。 反序列化打开它。 某个地方,文件格式被提升为无偿系统管理员。 JFrog 于 2024 年 2 月报道了 Goober Two。 其 Pickle 有效载荷打开了一个反向 Shell,向外连接以提供远程命令访问。 该仓库已被删除。 JFrog 还发现了暗示研究人员参与的线索,
1:02 因此归因不确定。 不受欢迎的客人已被记录。 并未证实从实际受害者那里窃取凭据。
哪些秘密在进程的范围之内?
1:09 以您的用户身份运行的代码可以读取该进程可以读取的任何内容。 已挂载的云密钥或可访问的令牌成为可能的攻击目标。 将其发送出去还需要可用的网络路由。 单独的数值权重没有神奇的凭据能力。 您的权限提供了模型卡中有趣的部分。 还有另一扇门。 一些模型要求您信任远程代码,这授权了仓库中的 Python。 Safetensor 文件可以与该代码并存。
1:32 检查权重格式涵盖了一个入口,而仓库的代码仍在等待您向它颁发访客徽章。 仍然在等待您向它颁发访客徽章。
为什么缺少的本地路径会变成远程模型?
1:38 Checkmarx 演示了模型混淆。 缺少的本地模型路径可以解析为具有匹配名称的公共仓库。 将其与远程代码结合使用 启用后,错误的包可以执行。 这是一项研究演示,涉及一家未具名公司的样本, 在一天内得到纠正。 一个缺失的文件夹获得了房东。 ReversingLabs 于 2025 年 2 月报告了两个样本,
损坏的包如何逃避旧的扫描器?
1:58 称该技术为 nullify AI。 两者都包含反向 Shell。 它们的 7z 封装阻止了普通的 PyTorch 加载, 因此此路径需要提取和不安全的反序列化。 损坏的 Pickle 流也暴露了扫描器盲点。 在任何人打开包裹之前,失败的扫描值得调查。 在研究人员无害的测试中,指令 在加载器到达损坏部分并引发错误之前
2:18 写入了一个文件。 想象一下打开一个包裹,放出浣熊,然后注意到运输标签无效。 运输标签无效。 错误消息的语法非常出色,但时机糟糕透顶。 Hugging Face 在二十四小时内删除了报告的样本并更改了扫描器。 该特定发现促使了修复。 安全扫描是有用的证据,将每个扫描器错误视为完全健康 仍然是对失败的极其宽大的解释。
2:43 首选 safetensors 和当前的修补加载器。
是什么让钥匙在客人无法触及的地方?
2:46 PyTorch 从 2.6 版开始缩小了其默认加载器。 审查自定义代码并固定审查后的修订。 在隔离环境中运行不熟悉的包,不带个人密钥, 并限制网络访问。 装满挂载凭据的容器是一个带有命名空间的大礼包。 那个开头的谜题有答案。 加载失败会告诉您执行停止在哪里。 较早的指令可能已经运行。
3:08 在打开包裹之前,将秘密保持在其无法触及的范围之外。 Under the hood 的结论。
我为什么要将此标记为 NEEDS REVIEW?
3:16 加载器。免费下载应该附带一个模型,并且客人名单应该由我决定。 保持我的决定。 如果您宁愿阅读此内容而不是听我说,那么每天早晨 diff 会免费发送到您的收件箱, 在 the daily diff dot dev,链接如下。 这就是今天的 diff。 我是 Axrisi 的 Niko。 负责任地合并。
来源
- Data Scientists Targeted by Malicious Hugging Face ML Models with Silent BackdoorJFrog
- Malicious ML models discovered on Hugging Face platformReversingLabs
- AI Model Confusion: An LLM/AI Model Supply Chain AttackCheckmarx Zero
- Pickle ScanningHugging Face
- SafetensorsHugging Face
- Loading custom modelsHugging Face
- Serialization semanticsPyTorch



