Vulnerability · Published Jan 20, 2026 · Assigned by mitre

CVE-2025-56005

Critical 9.8

In plain English

A critical-severity unsafe deserialization in the ply package (Debian). Proof-of-concept exploit code is public. The chance it is exploited in the next 30 days is estimated at 18.8% (higher than 97% of all known vulnerabilities). Ready-made attack tooling exists: public proof-of-concept code.

Severity (CVSS 3.1)9.8Critical
Exploit odds (30 days)18.8%top 2.7% of all CVEs
Exploited in the wildNo reportsCISA SSVC: poc
Attack tooling1Public PoC

Official description

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.

Affected packages & fixed versions

EcosystemPackageFixed inAdvisory
Debian:12plyno fix listedDEBIAN-CVE-2025-56005
Debian:13plyno fix listedDEBIAN-CVE-2025-56005
Debian:14plyno fix listedDEBIAN-CVE-2025-56005
Ubuntu:22.04:LTSplyno fix listedUBUNTU-CVE-2025-56005
Ubuntu:24.04:LTSplyno fix listedUBUNTU-CVE-2025-56005
Ubuntu:25.10plyno fix listedUBUNTU-CVE-2025-56005

Affected products (as reported)

VendorProductVersions
n/a n/a n/a

Weakness: CWE-502 · Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

References