CVE-2025-56005

CRITICAL

PLY 3.11 yacc picklefile - Unsafe Pickle Deserialization Code Execution

Title source: manual
STIX 2.1

Exploitation Summary

EIP tracks 2 public exploits for CVE-2025-56005. PoCs published by bohmiiidd, tom025.

AI-analyzed exploit summary This repository provides a valid proof-of-concept for CVE-2025-56005, demonstrating an unsafe deserialization vulnerability in PLY (Python Lex-Yacc) that leads to arbitrary code execution via pickle deserialization.

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.

Exploits (2)

nomisec WORKING POC
by bohmiiidd · poc
https://github.com/bohmiiidd/Undocumument_RCE_PLY-yacc-CVE-2025-56005

This repository provides a valid proof-of-concept for CVE-2025-56005, demonstrating an unsafe deserialization vulnerability in PLY (Python Lex-Yacc) that leads to arbitrary code execution via pickle deserialization.

Classification
Working Poc 95%
Attack Type
Rce
Complexity
Moderate
Reliability
Reliable
Target: PLY (Python Lex-Yacc) version 3.11
No auth needed
Prerequisites: Untrusted pickle file loaded via PLY's yacc.py
devstral-2 · analyzed Feb 16, 2026 Full analysis →
nomisec WRITEUP
by tom025 · poc
https://github.com/tom025/ply_exploit_rejection

This repository argues against the validity of CVE-2025-56005 by demonstrating that the provided PoC fails to execute successfully and does not demonstrate arbitrary code execution. The code attempts to exploit a deserialization vulnerability in PLY 3.11 but results in an AttributeError.

Classification
Writeup 100%
Attack Type
Deserialization
Complexity
Moderate
Reliability
Theoretical
Target: PLY 3.11
No auth needed
Prerequisites: PLY 3.11 installed · ability to run Python code
devstral-2 · analyzed Feb 16, 2026 Full analysis →

Scores

CVSS v3 9.8
EPSS 0.1865
EPSS Percentile 96.9%
Attack Vector NETWORK
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

CISA SSVC

Vulnrichment
Exploitation poc
Automatable yes
Technical Impact total

Details

CWE
CWE-502
Status published
Products (1)
dabeaz/ply 3.11
Published Jan 20, 2026
Tracked Since Feb 18, 2026