CVE-2025-56005PLY(Python Lex-Yacc)是一个广泛使用的Python词法分析器和解析器生成库。在版本3.11中,yacc()函数存在一个未文档化的picklefile参数,该参数接受.pkl文件并使用pickle.load()进行反序列化。由于pickle模块允许通过__reduce__()方法执行嵌入的代码,攻击者可以通过构造恶意pickle文件实现任意代码执行。该参数在官方文档和GitHub仓库中均未被提及,但在PyPI发布的版本中处于活跃状态。这构成了一个隐蔽的后门和持久化风险。值得注意的是,有第三方指出该漏洞的PoC未能成功完成任意代码执行,应予以驳回。
漏洞源于PLY库yacc()函数中的picklefile参数,该参数允许加载.pkl文件并使用pickle.load()反序列化。攻击者可通过构造恶意pickle文件利用__reduce__()方法执行任意代码。由于该参数未在官方文档中记录,攻击具有隐蔽性。