pdfminer.six vulnerable to Arbitrary Code Execution via Crafted PDF Input
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.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2025-64512
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 3 Nov 2026, 17:59 UTC · Revision 1
Source evidence
pdfminer.six vulnerable to Arbitrary Code Execution via Crafted PDF Input
core-osv · Original sourcePublished 10 Nov 2025, 21:58 UTC
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.
osv:CVE-2025-64512
Complete source record
{
"id": "810b03d2afdd0be2964a73a1c8d5a283e3e213c082b88823d1c05029f58e732c",
"url": "https://osv.dev/vulnerability/CVE-2025-64512",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "pdfminer.six vulnerable to Arbitrary Code Execution via Crafted PDF Input",
"summary": "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.",
"evidence": "osv:CVE-2025-64512",
"products": [],
"severity": "high",
"structured": {
"id": "CVE-2025-64512",
"aliases": [
"CVE-2025-64512",
"GHSA-wf5f-4jwr-ppcp",
"PYSEC-2026-1762"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/pdfminer/pdfminer.six",
"type": "GIT",
"events": [
{
"introduced": "0"
},
{
"fixed": "b808ee05dd7f0c8ea8ec34bdf394d40e63501086"
}
],
"database_specific": {
"extracted_events": [
{
"range": [
{
"introduced": "0"
},
{
"fixed": "20251107"
}
],
"source": "AFFECTED_FIELD",
"strategy": "StringRangeExpression"
},
{
"range": [
{
"fixed": "b808ee05dd7f0c8ea8ec34bdf394d40e63501086"
}
],
"source": "REFERENCES_COMMIT"
},
{
"range": [
{
"fixed": "b808ee05dd7f0c8ea8ec34bdf394d40e63501086"
}
],
"source": "REFERENCES_TAG",
"original_tag": "20251107"
},
{
"range": [
{
"introduced": "0"
},
{
"fixed": "20251107"
}
],
"source": "DESCRIPTION"
}
]
}
}
],
"versions": [
"20250506",
"20250416",
"20250327",
"20240706",
"20221105",
"20220524",
"20220506",
"20220319",
"20211012",
"20201018",
"20200726",
"20200720",
"20200517",
"20200402",
"20200124",
"20200121",
"20200104",
"20191110",
"20191107",
"20191020",
"20181108",
"20170720",
"20170419",
"20160614"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2025-64512.json"
}
}
],
"modified": "2026-10-28T02:30:31.051214365Z",
"provider": "osv",
"references": [
"https://github.com/pdfminer/pdfminer.six/releases/tag/20251107",
"https://lists.debian.org/debian-lts-announce/2025/11/msg00017.html",
"https://lists.debian.org/debian-lts-announce/2026/01/msg00005.html",
"https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/64xxx/CVE-2025-64512.json",
"https://github.com/pdfminer/pdfminer.six/security/advisories/GHSA-wf5f-4jwr-ppcp",
"https://nvd.nist.gov/vuln/detail/CVE-2025-64512",
"https://github.com/pdfminer/pdfminer.six/commit/b808ee05dd7f0c8ea8ec34bdf394d40e63501086"
],
"provider_metadata": {
"cwe_ids": [
"CWE-502"
],
"cna_assigner": "GitHub_M",
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2025/64xxx/CVE-2025-64512.json"
}
},
"related_cves": [
{
"value": "CVE-2025-64512",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 498069,
"published_at": "2025-11-10T21:58:37.95+00:00"
}