老牌Python语言解析工具库PLY(Python Lex-Yacc)存在远程代码执行(RCE)安全漏洞CVE-2025-56005,CVSS 3.1基础评分高达9.8,属于严重(Critical)等级的漏洞。研究人员指出,该漏洞并非源于常见的输入检查错误,而是与PLY内部一项未在官方文档中披露的设计细节有关,在特定使用场景下,可能被利用作为攻击入口。
未披露的设计细节成为高风险漏洞来源
PLY是一套长期用于构建语法分析器的Python函数库,应用场景涵盖编程语言处理、配置文件解析与后端服务等。根据安全研究人员Bohmiiidd的分析,PLY在yacc()函数中支持一个未被官方文档记载的参数picklefile,该参数原本用于指定解析表的缓存文件,但在实现中,PLY会直接使用Python内置的pickle机制加载该文件,过程中未验证文件来源是否可信。由于pickle在设计上未考虑安全性,若文件内容被刻意构造或篡改,在加载时可能直接执行恶意代码。
CVE-2025-56005也被NVD归类为CWE-502“不可信数据反序列化”,属于安全事件中较为常见、但一旦发生往往后果严重的漏洞类型。
PLY项目已停止更新,研究人员呼吁尽快评估替代方案
目前已知受CVE-2025-56005影响的PLY版本为3.11。研究人员提醒,该漏洞的危险之处在于,攻击者无需等待程序实际处理数据,只要在启动阶段加载被篡改的缓存文件,就可能植入后门,进而影响部署环境与自动化流程。
在项目状态方面,PLY原作者David Beazley已公开表示不再维护该项目,目前PyPI上的最新版本仍停留在2018年发布的3.11版。
安全研究人员建议,仍在使用PLY的开发团队,应尽快排查代码中是否使用了picklefile相关功能,避免加载来源不明的缓存文件,并重新审查文件存储位置与权限设置。若PLY仍是系统中的关键依赖包,也应评估替换为其他持续维护的解析库,或自行接手维护必要代码,以降低后续安全风险。