
Cloud Vulnerability DB
A community-led vulnerabilities database
CVE-2026-84310 is a Denial of Service vulnerability in pypdf, a free and open-source pure-Python PDF library, caused by unbounded outline traversal in pypdf/_doc_common.py. Prior to version 6.16.1, an attacker can craft a malicious PDF with a large number of outline entries or deeply nested, reused outline paths that causes the _get_outline function to consume excessive CPU time and memory. The vulnerability was disclosed on September 1, 2026, and affects all pypdf versions before 6.16.1. It carries a CVSS v3.1 base score of 5.5 (Medium) and a CVSS v4.0 base score of 4.8 (Medium) (GitHub Advisory, Red Hat Bugzilla).
The root cause is the absence of global entry-count and nesting-depth limits during outline traversal in pypdf/_doc_common.py's _get_outline function, classified under CWE-770 (Allocation of Resources Without Limits or Throttling), CWE-834 (Excessive Iteration), and CWE-405 (Asymmetric Resource Consumption/Amplification). An attacker crafts a PDF document with either an extremely large number of outline entries or deeply nested outlines that reuse paths, causing the traversal loop to iterate without bound. The fix introduced in PR #3966 adds two hard limits: OUTLINE_MAX_ENTRIES = 100_000 and OUTLINE_MAX_DEPTH = 100, enforced via a shared _TraversalState object passed through recursive calls, raising a LimitReachedError when either threshold is exceeded. Exploitation requires user interaction — specifically, an application or user must open and process the crafted PDF using pypdf (GitHub Advisory, GitHub PR #3966).
Successful exploitation causes the affected application to consume excessive CPU time and memory while processing a malicious PDF, resulting in a Denial of Service condition — the service may become unresponsive or crash. There is no impact on confidentiality or integrity; the vulnerability is limited to availability. Applications that automatically process user-supplied PDFs (e.g., document management systems, web upload handlers) are at elevated risk, as an unauthenticated attacker could trigger the condition by submitting a crafted file (GitHub Advisory, Red Hat Bugzilla).
There is no public proof-of-concept exploit and no evidence of in-the-wild exploitation at the time of disclosure. The EPSS score is 0.0, reflecting very low probability of near-term exploitation. The vulnerability is not listed in the CISA Known Exploited Vulnerabilities (KEV) catalog. Exploitation requires local or network delivery of a crafted PDF file and user interaction to trigger outline processing (GitHub Advisory, Red Hat Bugzilla).
reader.outline), which invokes _get_outline in pypdf/_doc_common.py.LimitReachedError exceptions in logs (only on patched versions); OOM (Out of Memory) killer events in system logs (/var/log/syslog, dmesg) referencing Python processes.Upgrade pypdf to version 6.16.1 or later, which introduces hard limits of 100,000 outline entries (OUTLINE_MAX_ENTRIES) and 100 nesting levels (OUTLINE_MAX_DEPTH) in the _get_outline function. For deployments that cannot upgrade immediately, the changes from PR #3966 can be applied manually as a workaround. Additionally, consider implementing OS-level resource limits (CPU time, memory) on processes that handle user-supplied PDFs, and validate or sandbox PDF inputs before processing (GitHub Advisory, pypdf Release 6.16.1).
Source: This report was generated using AI
Free Vulnerability Assessment
Evaluate your cloud security practices across 9 security domains to benchmark your risk level and identify gaps in your defenses.
Get a personalized demo
"Best User Experience I have ever seen, provides full visibility to cloud workloads."
"Wiz provides a single pane of glass to see what is going on in our cloud environments."
"We know that if Wiz identifies something as critical, it actually is."