CVE-2025-67747: CWE-184: trailofbits fickling 中不完整的禁止输入列表
严重性: 高 类型: 漏洞 CVE: CVE-2025-67747
Fickling 是一个 Python pickle 反编译器和静态分析器。0.1.6 之前的版本在其不安全模块导入的阻止列表中缺少 marshal 和 types。Fickling 已开始阻止这两个模块以解决此问题。这使得攻击者能够制作一个恶意的 pickle 文件来绕过 fickling,因为它缺少对 types.FunctionType 和 marshal.loads 的检测。一个用户如果相信该文件是安全的并对其反序列化,将在其系统上无意中执行任意代码。这会影响到任何使用 Fickling 来检查 pickle 文件安全问题的用户或系统。该问题已在版本 0.1.6 中修复。
技术摘要
CVE-2025-67747 影响 Fickling 工具,这是一个用于检测不安全 pickle 文件的 Python pickle 反编译器和静态分析器。在 0.1.6 版本之前,Fickling 的安全机制未将 ‘marshal’ 和 ’types’ 模块包含在其不安全导入的阻止列表中。此疏漏允许攻击者利用 types.FunctionType 和 marshal.loads 制作恶意的 pickle 文件,在反序列化时执行任意代码。由于 Fickling 被用来检查 pickle 文件的安全性,这种不完整的过滤会造成一种虚假的安全感,导致用户无意中反序列化恶意内容。该漏洞被归类为 CWE-184(不完整的禁止输入列表)和 CWE-502(不可信数据的反序列化)。利用需要用户交互——具体来说,用户必须反序列化恶意的 pickle 文件。CVSS 4.0 评分为 7.1,表明严重性高,具有本地攻击向量、复杂性低、无需权限但需要用户交互,并且对机密性、完整性和可用性影响高。该缺陷在 Fickling 0.1.6 版本中通过将 ‘marshal’ 和 ’types’ 添加到阻止列表中得到解决,从而防止了绕过该工具的安全检查。目前尚无已知的公开利用,但对于依赖易受攻击版本的用户而言,风险仍然很大。
潜在影响
对于欧洲组织而言,此漏洞构成重大风险,特别是对于那些在开发、测试或生产环境中使用 Fickling 分析或检查 pickle 文件的组织。成功利用会导致任意代码执行,可能损害系统的机密性、完整性和可用性。这可能导致数据泄露、未经授权的访问、网络内的横向移动以及关键服务的中断。依赖基于 Python 的工作流或自动化安全审查工具的金融、医疗、研究和技术等行业的组织尤其脆弱。使用未打补丁的 Fickling 所带来的虚假安全感,可能会导致更多地暴露于利用恶意 pickle 文件的供应链攻击或内部威胁。鉴于本地攻击向量和所需的用户交互,在接收或处理不受信任的 pickle 文件且没有额外安全措施的环境中,威胁更为突出。
缓解建议
主要的缓解措施是将 Fickling 升级到 0.1.6 或更高版本,该版本包含了阻止 ‘marshal’ 和 ’types’ 模块的修复程序。组织应审计其环境,识别任何易受攻击的 Fickling 版本的使用情况并立即更换。此外,对 pickle 文件来源实施严格的控制,避免反序列化不可信或未经验证的 pickle 数据。尽可能采用更安全的替代序列化格式(例如,JSON、使用安全加载器的 YAML)。采用多层安全措施,例如对反序列化进程进行沙箱处理、对异常行为应用运行时监控,并在执行反序列化的系统上强制执行最小权限原则。安全团队还应教育开发人员和用户了解 pickle 反序列化的风险以及验证工具版本和更新的重要性。最后,集成持续的漏洞管理,以主动检测和修复类似问题。
受影响国家
德国、法国、英国、荷兰、瑞典、芬兰、爱尔兰、比利时
来源: CVE Database V5 发布日期: 2025年12月16日 星期二