当前位置:首页>java>代码中的幽灵:废弃Python PLY库曝出严重RCE漏洞(CVSS 9.8)

代码中的幽灵:废弃Python PLY库曝出严重RCE漏洞(CVSS 9.8)

  • 2026-08-26 11:13:54
代码中的幽灵:废弃Python PLY库曝出严重RCE漏洞(CVSS 9.8)

近日,安全研究人员披露,Python 生态中一款历史悠久的解析库 PLY  存在一处严重安全漏洞,可导致远程代码执行。该漏洞编号为 CVE-2025-56005,CVSS 严重性评分高达 9.8,属于高危漏洞。值得关注的是,该漏洞被发现之际,项目维护者已正式宣布停止对 PLY 项目的维护,使相关风险进一步放大。

1

漏洞背景:隐藏参数引发高危风险

PLY 是对传统解析工具 lex 和 yacc 的 Python 实现,具有零依赖特性,长期被用于复杂语言和语法解析,在 Python 社区已有约 25 年的使用历史。尽管该库仍可在现代 Python 环境中运行,但其早期设计理念已难以满足当前安全要求。

安全研究人员 Bohmiiidd 在分析过程中发现,PLY 的 yacc() 函数中存在一个未在任何官方文档或 GitHub 仓库中说明的隐藏参数 picklefile。该参数在 PyPI 发布版本中实际生效,但并未向开发者公开说明。

2

漏洞成因:不安全的反序列化机制

研究显示,picklefile 参数在被启用时,会调用 Python 标准库中的 pickle.load() 方法,对指定文件进行反序列化处理,且未对输入数据进行任何安全校验。

在 Python 安全领域,pickle 模块因支持在反序列化过程中执行任意代码(例如通过 __reduce__() 方法),被普遍认为不适合处理不可信数据。

研究报告指出,如果攻击者能够控制传入的 pickle 文件内容,即可在解析器初始化阶段执行任意代码,从而实现对目标系统的控制。

Bohmiiidd 提供的概念验证显示,攻击者可通过构造恶意 pickle 载荷,在调用 yacc() 函数时直接执行系统命令,例如创建文件,甚至进一步接管服务器。

3

项目现状:官方已停止维护

PLY 项目创建者 David Beazley 近日公开表示,在持续维护 25 年后,已决定正式放弃该项目,后续不再提供功能更新或安全修复。他同时建议开发者考虑迁移至其他成熟且持续维护的解析库。在项目停止维护的背景下,上述高危漏洞暂无官方补丁,相关风险需由使用方自行应对。

4

安全建议:立即排查与风险规避

针对仍在使用 PLY 的开发者和组织,安全研究人员给出的建议明确而直接:

  • 严禁使用 picklefile 参数;

  • 对现有代码进行安全审计,确保外部输入或不可信数据 无法影响 yacc() 函数的参数传递;

  • 防止攻击者通过注入该隐藏参数,触发不安全反序列化行为。

由于该参数未被官方文档记录,绝大多数开发者并不会主动使用,但其潜在风险仍需引起高度重视,尤其是在涉及用户输入或自动化解析场景的系统中。

来源:https://securityonline.info/ghost-in-the-code-critical-rce-found-in-abandoned-python-ply-library-cvss-9-8/

关注

重睛鸟代码审查

最新文章

随机文章