pdfminer.six vulnerable to Arbitrary Code Execution via Crafted PDF Input
Description
Pdfminer.six is a community maintained fork of the original PDFMiner, a tool for extracting information from PDF documents. Prior to version 20251107, pdfminer.six will execute arbitrary code from a malicious pickle file if provided with a malicious PDF file. The CMapDB._load_data() function in pdfminer.six uses pickle.loads() to deserialize pickle files. These pickle files are supposed to be part of the pdfminer.six distribution stored in the cmap/ directory, but a malicious PDF can specify an alternative directory and filename as long as the filename ends in .pickle.gz. A malicious, zipped pickle file can then contain code which will automatically execute when the PDF is processed. Version 20251107 fixes the issue.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
pdfminer.sixPyPI | < 20251107 | 20251107 |
Affected products
1- Range: < 20251107
Patches
1b808ee05dd7fFix: arbitary code execution when loading pickle font files
1 file changed · +8 −2
pdfminer/cmapdb.py+8 −2 modified@@ -240,8 +240,14 @@ def _load_data(cls, name: str) -> Any: ) for directory in cmap_paths: path = os.path.join(directory, filename) - if os.path.exists(path): - gzfile = gzip.open(path) + # Resolve paths to prevent directory traversal + resolved_path = os.path.realpath(path) + resolved_directory = os.path.realpath(directory) + # Check if resolved path is within the intended directory + if not resolved_path.startswith(resolved_directory + os.sep): + continue + if os.path.exists(resolved_path): + gzfile = gzip.open(resolved_path) try: return type(str(name), (), pickle.loads(gzfile.read())) finally:
Vulnerability mechanics
Generated by null/stub on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
7- github.com/advisories/GHSA-wf5f-4jwr-ppcpghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2025-64512ghsaADVISORY
- github.com/pdfminer/pdfminer.six/commit/b808ee05dd7f0c8ea8ec34bdf394d40e63501086ghsax_refsource_MISCWEB
- github.com/pdfminer/pdfminer.six/releases/tag/20251107ghsax_refsource_MISCWEB
- github.com/pdfminer/pdfminer.six/security/advisories/GHSA-wf5f-4jwr-ppcpghsax_refsource_CONFIRMWEB
- lists.debian.org/debian-lts-announce/2025/11/msg00017.htmlghsaWEB
- lists.debian.org/debian-lts-announce/2026/01/msg00005.htmlghsaWEB
News mentions
0No linked articles in our index yet.