[控场AI]
产品pickle模块

pickle

Python标准库内置的对象序列化模块,通过将Python对象转换为字节流实现持久化存储,支持大多数内置Python类型,是Python生态中最基础的序列化工具

核心事实

时间轴 (近 90 天)

10月14日

模型权重文件可能被植入恶意代码,例如通过 pickle 反序列化漏洞执行任意命令。

待验证50%
10月12日

如果模型内部包含大型numpy数组(scikit-learn模型普遍如此),joblib在速度和可靠性上比pickle更有优势

待验证50%
10月12日

pickle通过将Python对象转换为字节流实现序列化,该过程称为pickling,反向恢复称为unpickling

待验证50%
10月12日

pickle是Python内置标准库,用于序列化大多数Python对象,但处理大型numpy数组较慢,不适合大数据场景

待验证50%
10月8日

大量现存模型仍以 pickle 格式(.pkl、.pt、.bin)分发,使得入库前的静态扫描(如 picklescan 工具)成为必要防线

待验证50%
9月25日

针对Hugging Face等平台,历史上已记录过通过恶意pickle文件在模型加载时触发任意代码执行的攻击案例

待验证50%
9月11日

在加载模型时优先使用 safetensors 而非 pickle 格式,可从根源上规避反序列化代码执行风险

待验证50%
9月11日

Hugging Face 支持使用 safetensors 格式替代 pickle 格式

待验证50%
8月28日

PyTorch的.pt/.pth文件和许多框架的checkpoint依赖pickle进行序列化存储

待验证50%
8月28日

应使用安全的序列化格式如safetensors而非pickle,并对拉取的模型进行完整性校验

待验证50%

还有 3 条时间轴事件

全部知识事实 (13)

已验证

Python pickle格式在反序列化时可以执行任意代码,攻击者可以在模型文件中嵌入恶意代码

65%
待验证

模型权重文件可能被植入恶意代码,例如通过 pickle 反序列化漏洞执行任意命令。

50%
待验证

如果模型内部包含大型numpy数组(scikit-learn模型普遍如此),joblib在速度和可靠性上比pickle更有优势

50%
待验证

pickle是Python内置标准库,用于序列化大多数Python对象,但处理大型numpy数组较慢,不适合大数据场景

50%
待验证

pickle通过将Python对象转换为字节流实现序列化,该过程称为pickling,反向恢复称为unpickling

50%
待验证

大量现存模型仍以 pickle 格式(.pkl、.pt、.bin)分发,使得入库前的静态扫描(如 picklescan 工具)成为必要防线

50%
待验证

针对Hugging Face等平台,历史上已记录过通过恶意pickle文件在模型加载时触发任意代码执行的攻击案例

50%
待验证

Hugging Face 支持使用 safetensors 格式替代 pickle 格式

50%
待验证

在加载模型时优先使用 safetensors 而非 pickle 格式,可从根源上规避反序列化代码执行风险

50%
待验证

PyTorch的.pt/.pth文件和许多框架的checkpoint依赖pickle进行序列化存储

50%
待验证

应使用安全的序列化格式如safetensors而非pickle,并对拉取的模型进行完整性校验

50%
待验证

safetensors等安全格式正在推广作为pickle格式的替代,但大量存量模型仍使用pickle格式

50%
待验证

深度学习社区长期以pickle格式分享模型权重(.pt、.pkl文件),safetensors等安全格式正在推广以替代

50%

来源文章