#pickle

共收录 2 条相关安全情报。

← 返回所有主题
👥 作者: Justin Applegate, Andreas Kellas

Python原生的序列化协议pickle虽然功能强大,但存在已知的安全风险,尤其是在传输不可信数据或保存机器学习模型时。为了缓解风险,开发者通常会在反序列化时限制导入的模块,或使用静态和动态分析工具检测恶意负载。然而,这些方法依赖于对Pickle虚拟机(PVM)操作码的准确解释,而Python的三种原生PVM实现(pickle、cPickle、_pickle等)之间存在行为差异,可能导致误判或漏检。为了高效、可扩展地发现这些差异,本文提出了PickleFuzzer,一种基于生成的定制化模糊测试工具。PickleFuzzer根据自定义语法生成pickle对象,然后分别传递给不同实现,通过比较异常抛出和关键内部状态的变化来检测不一致性。它不需要规范的预言机,而是通过差分测试比较执行行为。实验发现了14个新的不一致性,其中4个是严重的安全缺陷,可绕过Hugging Face等模型托管平台使用的安全扫描工具。作者已向Python软件基金会报告了所有发现,并通过漏洞赏金平台获得750美元奖励。研究表明差分测试是发现pickle实现中安全相关差异的有效方法,为未来更定向的模糊测试提供了方向。

💡 推荐理由: pickle在AI/ML生态中广泛使用,其实现差异可能被攻击者利用绕过安全扫描,导致反序列化攻击。该研究直接揭示了现有防御的盲区,对模型托管和依赖pickle的框架有重要安全参考价值。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | 命中热门研究主题 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.6)
👥 作者: Justin Applegate, Andreas Kellas

Python 的原生序列化协议 pickle 虽然功能强大,但由于存在已知的安全风险,在处理不可信数据时非常不安全。它常被用于保存机器学习模型等场景,但攻击者可能通过构造恶意的 pickle 数据来执行任意代码。开发者有时会通过限制反序列化时的导入或使用静态/动态分析工具来缓解风险,但这些方法容易出错,且高度依赖对 Pickle 虚拟机(PVM)操作码的准确解释。Python 的三个原生 PVM 模块(pickle、cPickle、_pickle)之间存在实现差异,这些差异会导致错误检测恶意负载,从而削弱现有防御。为了高效且可扩展地识别这些差异,本文提出了 PickleFuzzer,一种基于生成的定制化模糊测试工具。PickleFuzzer 通过语法生成 pickle 对象,将其传递给每个实现,并检测抛出的异常或关键内部状态的变化。它通过比较每个测试实现的执行行为来确定差异,而不需要依赖于规范派生的 oracle。PickleFuzzer 发现了 14 个新的差异,其中 4 个是关键的,可用于绕过 Hugging Face 等流行模型托管平台上部署的安全扫描工具。作者向 Python 软件基金会披露了所有发现,并将安全问题报告给漏洞赏金平台,获得了 750 美元奖励。该工作证明了差分测试是识别重要 pickle 实现中安全相关差异的有效方法,并为通过更定向的模糊测试发现更深层的 pickle 漏洞提供了有前景的未来方向。

💡 推荐理由: PickleFuzzer 揭示了不同实现间的差异可被利用来绕过安全检查,直接影响 Hugging Face 等平台上的模型安全。安全从业者应关注此类间接漏洞检测方法。

🎯 建议动作: 研究跟进

排序因子: 来自 arXiv 其他板块 (+2) | 命中热门研究主题 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)