CVE Catalog

CVE-2025-56005

CriticalCVSS 9.8
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Very high risk
17.15%

97th percentile - higher than 97% of all known CVEs

Summary

The PLY (Python Lex-Yacc) library version 3.11 contains an undocumented and unsafe feature in the `picklefile` parameter of the `yacc()` function, allowing Remote Code Execution (RCE) via deserialization of a malicious `.pkl` file without validation. An attacker can exploit this to execute arbitrary code, posing a stealthy backdoor and persistence risk.

Risk Assessment

The risk for the organization includes potential remote takeover of the system, leading to data theft, malware installation, or permanent compromise of the IT environment.

Recommendation

It is recommended to immediately update the PLY library to the latest version if available, or apply temporary mitigations such as blocking access to the `yacc()` function with the `picklefile` parameter and monitoring logs for suspicious deserialization attempts.

Original NVD description (English source)

An undocumented and unsafe feature in the PLY (Python Lex-Yacc) library 3.11 allows Remote Code Execution (RCE) via the `picklefile` parameter in the `yacc()` function. This parameter accepts a `.pkl` file that is deserialized with `pickle.load()` without validation. Because `pickle` allows execution of embedded code via `__reduce__()`, an attacker can achieve code execution by passing a malicious pickle file. The parameter is not mentioned in official documentation or the GitHub repository, yet it is active in the PyPI version. This introduces a stealthy backdoor and persistence risk. NOTE: A third-party states that this vulnerability should be rejected because the proof of concept does not demonstrate arbitrary code execution and fails to complete successfully.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS