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.

Project Subscriptions

Vendors Products
Advisories

No advisories yet.

Fixes

Solution

No solution given by the vendor.


Workaround

No workaround given by the vendor.

History

Fri, 06 Feb 2026 20:00:00 +0000

Type Values Removed Values Added
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. 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.
References

Fri, 30 Jan 2026 23:30:00 +0000

Type Values Removed Values Added
References

Fri, 30 Jan 2026 20:15:00 +0000

Type Values Removed Values Added
First Time appeared Dabeaz
Dabeaz ply
CPEs cpe:2.3:a:dabeaz:ply:3.11:*:*:*:*:*:*:*
Vendors & Products Dabeaz
Dabeaz ply

Thu, 29 Jan 2026 20:30:00 +0000

Type Values Removed Values Added
References

Thu, 29 Jan 2026 19:30:00 +0000

Type Values Removed Values Added
References

Thu, 29 Jan 2026 00:30:00 +0000

Type Values Removed Values Added
References

Wed, 28 Jan 2026 20:30:00 +0000

Type Values Removed Values Added
References

Wed, 28 Jan 2026 06:30:00 +0000

Type Values Removed Values Added
References

Fri, 23 Jan 2026 22:30:00 +0000

Type Values Removed Values Added
References

Fri, 23 Jan 2026 21:30:00 +0000

Type Values Removed Values Added
References

Thu, 22 Jan 2026 12:15:00 +0000

Type Values Removed Values Added
Title ply: From CVEorg collector
References
Metrics threat_severity

None

threat_severity

Critical


Wed, 21 Jan 2026 11:30:00 +0000

Type Values Removed Values Added
First Time appeared Python
Python ply
Vendors & Products Python
Python ply

Tue, 20 Jan 2026 20:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'yes', 'Exploitation': 'poc', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Tue, 20 Jan 2026 19:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-502
Metrics cvssV3_1

{'score': 9.8, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'}


Tue, 20 Jan 2026 18:30:00 +0000

Type Values Removed Values Added
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.
References

Projects

Sign in to view the affected projects.

cve-icon MITRE

Status: PUBLISHED

Assigner: mitre

Published:

Updated: 2026-02-06T19:55:53.916Z

Reserved: 2025-08-16T00:00:00.000Z

Link: CVE-2025-56005

cve-icon Vulnrichment

Updated: 2026-01-30T23:06:25.298Z

cve-icon NVD

Status : Modified

Published: 2026-01-20T19:15:49.247

Modified: 2026-02-06T20:16:08.237

Link: CVE-2025-56005

cve-icon Redhat

Severity : Critical

Publid Date: 2026-01-20T00:00:00Z

Links: CVE-2025-56005 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-01-21T11:20:02Z

Weaknesses