{"id":"CVE-2025-56005","title":"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","summary":"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 `pick…","severity":"critical","cvss":9.8,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","cwe":["CWE-502"],"vendor":"dabeaz","product":"ply","affected":["ply = 3.11"],"published":"2026-01-20","updated":"2026-09-17","sourceUpdated":"2026-09-17T12:17:09.870","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2025-56005","references":[{"url":"https://github.com/bohmiiidd/Undocumented-RCE-in-PLY","label":"cve@mitre.org"},{"url":"https://github.com/bohmiiidd/Undocumument_RCE_PLY-yacc-CVE-2025-56005","label":"cve@mitre.org"},{"url":"https://github.com/tom025/ply_exploit_rejection","label":"cve@mitre.org"},{"url":"https://github.com/tom025/ply_exploit_rejection/issues/1","label":"cve@mitre.org"},{"url":"http://www.openwall.com/lists/oss-security/2026/01/23/4","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://www.openwall.com/lists/oss-security/2026/01/23/5","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://www.openwall.com/lists/oss-security/2026/01/28/5","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://www.openwall.com/lists/oss-security/2026/01/29/1","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://www.openwall.com/lists/oss-security/2026/01/29/2","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://www.openwall.com/lists/oss-security/2026/01/30/1","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://access.redhat.com/security/cve/CVE-2025-56005","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://bugzilla.redhat.com/show_bug.cgi?id=2431308","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-56005.json","label":"0b0ca135-0b70-47e7-9f44-1890c2a1c46c"},{"url":"https://www.cve.org/CVERecord?id=CVE-2025-56005"},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2025-56005"}],"tags":["nvd","cve.org","exploit-available","csaf","vex","red-hat","score-dispute"],"exploitAvailable":true,"ssvc":{"exploitation":"poc","automatable":"yes","technicalImpact":"total","timestamp":"2026-01-20T18:47:19.926886Z"},"epss":0.19069,"epssPercentile":0.97247,"exploits":{"github":1,"githubRepos":["https://github.com/tom025/ply_exploit_rejection"],"checkedAt":"2026-09-21T15:27:45.016Z"},"scores":{"nvd":9.8,"vendor":7.8,"adp":9.8},"ingestedAt":"2026-06-30T13:26:50.520Z","slug":"CVE-2025-56005","body":"## Overview\n\nAn 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.\n\n## Affected\n\n- `ply = 3.11`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.\n\n## Vendor advisories\n\n- **Red Hat VEX** · Important · affected: Migration Toolkit for Containers, Migration Toolkit for Virtualization, OpenShift Developer Tools and Services, OpenShift Pipelines, Red Hat Advanced Cluster Security 4, Red Hat Ceph Storage 7, … · no fix planned: Migration Toolkit for Containers, Migration Toolkit for Virtualization, OpenShift Pipelines, Red Hat Advanced Cluster Security 4, … · updated 2026-09-16 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2025/cve-2025-56005.json)","depth":"abyssal","depthScore":70,"depthScoreParts":{"impact":53.9,"likelihood":3.8,"exploitation":12,"ransomware":0},"changes":[{"seq":4891,"id":"CVE-2025-56005","ts":1788887215093,"field":"exploit_available","old":"false","new":"true"},{"seq":3774,"id":"CVE-2025-56005","ts":1788886334663,"field":"exploit_available","old":"true","new":"false"},{"seq":2619,"id":"CVE-2025-56005","ts":1788883012912,"field":"exploit_available","old":"false","new":"true"},{"seq":1648,"id":"CVE-2025-56005","ts":1788882417253,"field":"exploit_available","old":"true","new":"false"},{"seq":756,"id":"CVE-2025-56005","ts":1788881850556,"field":"exploit_available","old":"false","new":"true"}]}