Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Unauthenticated network-reachable delivery (PR:N, AV:N, AC:L); availability impact rated L consistent with partial memory exhaustion rather than a guaranteed full-crash outcome per CVSS 4.0 VA:L signal.
Primary rating from Vendor (github).
CVSS VectorVendor: github
Lifecycle Timeline
2Blast Radius
ecosystem impact- 7 pypi packages depend on pypdf (7 direct, 0 indirect)
Ecosystem-wide dependent count for version 6.13.3.
DescriptionCVE.org
pypdf is a free and open-source pure-python PDF library. Prior to 6.13.3, a maliciously crafted PDF can cause DoS. An attacker who uses this vulnerability can craft a PDF which leads to large memory usage, as MAX_DECLARED_STREAM_LENGTH is sometimes ignored. This requires parsing a content stream without a /Length value. This issue has been fixed in version 6.13.3.
AnalysisAI
Memory exhaustion in pypdf prior to 6.13.3 allows unauthenticated remote attackers to cause denial of service by supplying a maliciously crafted PDF. The MAX_DECLARED_STREAM_LENGTH safety cap - designed to bound memory allocation during stream parsing - is bypassed when a PDF content stream omits the /Length value, enabling unbounded memory growth. No active exploitation is confirmed (not in CISA KEV), but the attack surface encompasses any Python application that parses attacker-supplied PDFs, a common pattern in document pipelines and web upload handlers.
Technical ContextAI
pypdf is a pure-Python PDF parsing library distributed via PyPI. PDF streams normally declare their size via a /Length dictionary entry, which pypdf uses alongside the internal constant MAX_DECLARED_STREAM_LENGTH to cap memory allocation during content stream parsing. CWE-400 (Uncontrolled Resource Consumption) captures the root cause: when a PDF stream lacks /Length entirely, the code path enforcing MAX_DECLARED_STREAM_LENGTH is not reached, and the parser allocates memory proportional to the actual (unbounded) stream content. This is a classic parser resource exhaustion pattern where a missing field disables a safety guard rather than triggering a rejection.
RemediationAI
Upgrade pypdf to version 6.13.3 or later, which enforces MAX_DECLARED_STREAM_LENGTH even when a content stream lacks a /Length entry; the patch and release notes are available at https://github.com/py-pdf/pypdf/releases/tag/6.13.3. If an immediate upgrade is not feasible, run PDF parsing in a subprocess with explicit OS-level memory limits (e.g., Python's resource.setrlimit with RLIMIT_AS, or cgroup memory constraints) so that a single malformed document cannot exhaust host memory - note this adds process-management overhead and does not fix the root cause. Additionally, applying upstream file-size and structural validation (rejecting PDFs above a reasonable size threshold before parsing) can reduce exposure. These workarounds carry operational complexity and are not substitutes for patching.
Wazuh SIEM platform versions 4.4.0 through 4.9.0 contain an unsafe deserialization vulnerability in the DistributedAPI t
BentoML version 1.4.2 and earlier contains an unauthenticated remote code execution vulnerability through insecure deser
pgAdmin 4 contains critical remote code execution vulnerabilities in the Query Tool download and Cloud Deployment endpoi
The renderLocalView function in render/views.py in graphite-web in Graphite 0.9.5 through 0.9.10 uses the pickle Python
BentoML is a Python library for building online serving systems optimized for AI apps and model inference. Rated critica
OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h does not properly restrict processing of ChangeCiph
pyLoad download manager version prior to 0.5.0b3.dev77 exposes the Flask SECRET_KEY through an unauthenticated endpoint.
Langflow (a visual LLM pipeline builder) contains a critical unauthenticated code execution vulnerability (CVE-2026-3301
In Mercurial before 4.1.3, "hg serve --stdio" allows remote authenticated users to launch the Python debugger, and conse
Unauthenticated remote code execution affects Kestra OSS (the open-source event-driven orchestration platform) prior to
Unauthenticated remote code execution in Marimo ≤0.20.4 allows attackers to execute arbitrary system commands via the `/
pyLoad is the free and open-source Download Manager written in pure Python. Rated medium severity (CVSS 5.3), this vulne
Same weakness CWE-400 – Uncontrolled Resource Consumption
View allSame technique Denial Of Service
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-40425