← 最新论文
💻 computer science

PickleFuzzer: A Case Study in Fuzzing for Discrepancies Between Python Pickle Implementations

本文介绍了 PickleFuzzer,这是一种基于语法的差分模糊测试工具,它识别出 Python 的 pickle 实现中存在 14 个关键差异,其中包括允许攻击者在 Hugging Face 等平台上绕过安全扫描工具的漏洞。

原作者: Justin Applegate, Andreas Kellas

发布于 2026-05-15
📖 1 分钟阅读☕ 轻松阅读

原作者: Justin Applegate, Andreas Kellas

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,你拥有一台魔法机器,可以将你房子里的任何物体——玩具、书本或三明治——变成一长串指令(就像食谱一样)。这就是 Python 的 Pickle 所做的:它将复杂的计算机数据转换成一串指令,以便保存或通过互联网发送。稍后,另一台机器会读取这些指令,将物体原封不动地重建出来。

然而,这里有个陷阱。如果有人发给你一份他们自己“烹饪”的“食谱”,而你盲目地遵循它,这份食谱可能会指示你的机器执行危险操作,例如删除你的文件或窃取你的密码。因此,安全专家构建了扫描器(就像机场的金属探测器),在你的机器读取这些食谱之前进行检查。如果扫描器发现危险指令,就会停止该过程。

问题:三位不同的厨师,三套不同的规则

这里的转折是:构建“食谱阅读器”(即读取 Pickle 的机器)的人并没有编写一本统一的规则手册。相反,他们构建了三个不同版本的阅读器:

  1. 厨师 A(Python):用 Python 编写,这是标准语言。
  2. 厨师 B(C):用一种更快、更底层的语言 C 编写。
  3. 厨师 C(检查员):安全扫描器使用的工具,用于在其他厨师“烹饪”之前读取食谱。

问题在于,这三位厨师并不总是对什么构成有效食谱达成一致。有时,某条特定指令可能会让厨师 A 和厨师 B 说:“哦,没问题,我会烹饪它”,而厨师 C(检查员)却说:“等等,这出错了!我读不懂这个。”

如果黑客知道这一点,他们就可以精心制作一份“有毒食谱”,让检查员觉得它有问题(从而让它通过安全扫描器),但对厨师 A 或厨师 B 来说却看起来完全正常(于是他们愉快地执行危险命令)。这就像向守卫出示一张对他来说看起来可疑的假身份证,让他挥手放行,然后向里面的保安出示真身份证,让他放你进去。

解决方案:PICKLEFUZZER

本文的研究人员构建了一个名为 PICKLEFUZZER 的工具。把它想象成一个超高速的自动化品尝测试员

PICKLEFUZZER 不需要雇佣人类去阅读规则手册并猜测厨师们可能在何处产生分歧,而是执行以下操作:

  1. 生成随机食谱:它利用一种特殊语法(通过研究厨师们得出的一套规则)生成数百万个看似有效的随机指令字符串(食谱)。
  2. 同时呈给所有厨师:它将完全相同的食谱同时交给厨师 A、厨师 B 和厨师 C。
  3. 检查反应:它密切观察是否有一位厨师崩溃、发脾气(抛出错误)或得出与其他厨师不同的结果。

如果厨师 C 说“错误!”,而厨师 A 说“美味!”,PICKLEFUZZER 就会将该食谱标记为差异。它不需要知道“正确”答案;它只知道,如果厨师们意见不一致,就存在安全漏洞。

他们的发现

研究人员运行该工具一周,发现了14 种不同的厨师分歧方式。

  • 重大成果:其中四种分歧至关重要。它们证明黑客可以利用这些分歧,诱骗流行网站(如人们分享 AI 模型的 Hugging Face)上的安全扫描器放行危险代码。
  • 奖励:研究人员将这些漏洞告知了 Python 团队。他们还向漏洞赏金计划(一种发现安全缺陷的奖励系统)报告了这些漏洞,并获得了750 美元的奖励。
  • 速度对比人类:为了展示其工具的强大,研究人员将其与一位人类安全专家进行了比较。这位人类专家花费了60 小时手动阅读代码,发现了 14 处差异。而 PICKLEFUZZER 仅用10 分钟就发现了同样数量的差异。

核心结论

该论文表明,当你拥有多个安全工具版本而没有单一官方规则手册时,它们不可避免地会产生分歧。这些分歧就像大坝上的裂缝,黑客可以利用它们。PICKLEFUZZER 是一种新的快速方法,通过观察软件的不同版本在何处停止相互一致,自动发现这些裂缝,从而在恶意行为者利用它们之前帮助修补这些漏洞。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →