Picklescan is vulnerable to RCE through missing detection when calling numpy.f2py.crackfortran._eval_length
Summary
Picklescan uses the numpy.f2py.crackfortran._eval_length function (a NumPy F2PY helper) to execute arbitrary Python code during unpickling.
Details
Picklescan fails to detect a malicious pickle that uses the gadget numpy.f2py.crackfortran._eval_length in __reduce__, allowing arbitrary command execution when the pickle is loaded. A crafted object returns this function plus attacker‑controlled arguments; the scan reports the file as safe, but pickle.load() triggers execution.
PoC
class PoC:
def __reduce__(self):
from numpy.f2py.crackfortran import _eval_length
return _eval_length, ("__import__('os').system('whoami')", None)
Impact
- Arbitrary code execution on the victim machine once they load the “scanned as safe” pickle / model file.
- Affects any workflow relying on Picklescan to vet untrusted pickle / PyTorch artifacts.
- Enables supply‑chain poisoning of shared model files.
Credits
Affected software
Click a technology to see all vulnerabilities affecting it.
| Platform | Package | Vulnerable versions | Fixed in |
|---|---|---|---|
| Python (PyPI) | picklescan | < 0.0.33 | 0.0.33 |
References
- https://github.com/mmaitre314/picklescan/security/advisories/GHSA-6556-fwc2-fg2p
- https://github.com/mmaitre314/picklescan/pull/53
- https://github.com/mmaitre314/picklescan/commit/70c1c6c31beb6baaf52c8db1b6c3c0e84a6f9dab
- https://github.com/mmaitre314/picklescan
- https://github.com/mmaitre314/picklescan/releases/tag/v0.0.33
- https://pypi.org/project/picklescan
- https://github.com/advisories/GHSA-6556-fwc2-fg2p
- https://nvd.nist.gov/vuln/detail/CVE-2025-71339
- https://github.com/pypa/advisory-database/tree/main/vulns/picklescan/PYSEC-2026-1783.yaml
- https://www.vulncheck.com/advisories/picklescan-arbitrary-code-execution-via-numpy-f2py-crackfortran-eval-length-gadget
- CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N- Weakness (CWE)
CWE-502, CWE-94- Platform
- Python (PyPI)
- Package
picklescan- Disclosed
- 30.12.2025
- Updated
- 11.10.2026 14:18
Sources and licenses
OSV / GitHub Advisory Database - PYSEC-2026-1783 - PyPA Advisory Database; CC BY 4.0
OSV / GitHub Advisory Database - GHSA-6556-fwc2-fg2p - CC BY 4.0
Vulnerability history: picklescan
All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.
- Total entries
- 58
- First → latest
- 02.2025 03.2026
- Without a fix
- 0
- Exploited in attacks
- 0
Severity breakdown
- Critical 7
- High 25
- Medium 26
Disclosures per year
- 2025: 51
- 2026: 7
-
Picklescan is vulnerable to RCE through missing detection when calling numpy.f2py.crackfortran._eval_length this entry
Know which vulnerabilities affect your application
With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.