{"vulnerability": "CVE-2026-71870", "sightings": [{"uuid": "6c16d556-2a08-40e2-8bab-5f04cdac0dce", "vulnerability_lookup_origin": "1a89b78e-f703-45f3-bb86-59eb712668bd", "author": "9f56dd64-161d-43a6-b9c3-555944290a09", "vulnerability": "CVE-2026-71870", "type": "seen", "source": "https://gist.github.com/alon710/51a19d7e4b20307e86a86a2096f8e2e7", "content": "# CVE-2026-71870: CVE-2026-71870: Uncontrolled Resource Consumption (DoS) in pypdf ToUnicode CMap Parsing\n\n&gt; **CVSS Score:** 4.8\n&gt; **Published:** 2026-08-07\n&gt; **Full Report:** https://cvereports.com/reports/CVE-2026-71870\n\n## Summary\nAn uncontrolled resource consumption vulnerability (CWE-400) exists in pypdf prior to version 6.15.0. When extracting text from a specially crafted PDF document, the parser fails to restrict token lengths within /ToUnicode CMap streams, causing unbounded memory allocation and process termination via Out-of-Memory (OOM) crashes.\n\n## TL;DR\nA vulnerability in pypdf allows attackers to trigger a Denial of Service (OOM crash) via crafted /ToUnicode CMap streams containing massive hex-encoded tokens.\n\n## Exploit Status: POC\n\n## Technical Details\n\n- **CWE ID**: CWE-400\n- **Attack Vector**: Local (via crafted document parsing)\n- **CVSS Score**: 4.8\n- **Impact**: Denial of Service (OOM Process Crash)\n- **Exploit Status**: Proof-of-Concept only\n- **KEV Status**: Not listed\n\n## Affected Systems\n\n- pypdf library deployments processing untrusted PDF documents\n- **pypdf**: &lt; 6.15.0 (Fixed in: `6.15.0`)\n\n## Mitigation\n\n- Upgrade the pypdf dependency to version 6.15.0 or later to ensure validation of CMap token sizes\n- Isolate PDF processing workers in containerized environments with strict memory limits using cgroups\n- Validate incoming file sizes and strip excessive stream data prior to extraction processing\n\n**Remediation Steps:**\n1. Identify all deployment environments running the pypdf library\n2. Run 'pip install --upgrade pypdf&gt;=6.15.0' or update the project requirements.txt/poetry.lock file\n3. Verify text extraction processes handle 'LimitReachedError' exceptions gracefully to prevent unhandled service crashes\n4. Configure container resources with memory limits to prevent host-level OOM events\n\n## References\n\n- [GHSA Security Advisory](https://github.com/py-pdf/pypdf/security/advisories/GHSA-fp3f-mc75-235c)\n- [Pull Request #3944](https://github.com/py-pdf/pypdf/pull/3944)\n- [Fix Commit](https://github.com/py-pdf/pypdf/commit/afba8080e19d29a3c256a742b340995e695b35aa)\n- [Release Information](https://github.com/py-pdf/pypdf/releases/tag/6.15.0)\n\n\n---\n*Generated by [CVEReports](https://cvereports.com/reports/CVE-2026-71870) - Automated Vulnerability Intelligence*", "creation_timestamp": "2026-08-07T20:34:02.124232Z"}]}