---
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.97188
exploits:
  github: 1
  githubRepos:
    - 'https://github.com/tom025/ply_exploit_rejection'
  checkedAt: '2026-09-23T07:13:43.417Z'
scores:
  nvd: 9.8
  vendor: 7.8
  adp: 9.8
ingestedAt: '2026-06-30T13:26:50.520Z'
---

## Overview

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

- `ply = 3.11`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Vendor advisories

- **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)
