Description
pypdf is a free and open-source pure-python PDF library. Prior to 6.16.1, an attacker can craft a PDF that causes pypdf/_doc_common.py _get_outline to consume long runtimes and large amounts of memory when retrieving document outlines with large numbers of entries or deeply nested reused paths because the traversal lacked global entry-count and nesting-depth limits. This issue is fixed in version 6.16.1.
Published: 2026-09-01
Score: 4.8 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Resource Exhaustion (Denial of Service)
Action: Patch Now
AI Analysis

Impact

The vulnerability arises from the lack of global entry‑count and nesting‑depth limits in the _get_outline routine of pypdf/_doc_common.py. An attacker can craft a PDF file with an extreme number or depth of outline entries. When the library processes such a PDF, it enters a long traversal loop that consumes excessive CPU time and allocates large amounts of memory, potentially exhausting system resources. The flaw is a classic case of resource exhaustion (CWE‑405, CWE‑770, CWE‑834) that can lead to denial of service for applications that use pypdf.

Affected Systems

Affected instances are installations of the py‑pdf pypdf library running any version earlier than 6.16.1. The fix is incorporated in release 6.16.1, so all versions below that threshold are vulnerable when processing PDFs that contain very large or deeply nested outlines.

Risk and Exploitability

The CVSS score of 4.8 indicates a moderate severity. The EPSS score is not available, and the vulnerability is not listed in CISA’s KEV catalog, implying limited known exploitation. An attacker would need to supply a malicious PDF to an application that imports or processes the file with pypdf. While the flaw causes high resource consumption, it does not expose code execution or data leakage. Nonetheless, it can degrade availability of legitimate PDF processing services, especially when exposed to untrusted input.

Generated by OpenCVE AI on September 2, 2026 at 04:19 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to pypdf 6.16.1 or newer to eliminate the traversal limits bug.
  • Add validation to reject PDFs with an excessively large or deeply nested outline before parsing.
  • Configure environment constraints (e.g., memory limits) on processes that load PDFs to prevent exhaustion.

Generated by OpenCVE AI on September 2, 2026 at 04:19 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-23w6-3w8w-8484 pypdf: Possible long runtimes/large memory usage when retrieving outlines
History

Fri, 04 Sep 2026 03:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Wed, 02 Sep 2026 03:15:00 +0000

Type Values Removed Values Added
First Time appeared Py-pdf
Py-pdf pypdf
Vendors & Products Py-pdf
Py-pdf pypdf

Wed, 02 Sep 2026 00:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-770
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Tue, 01 Sep 2026 22:00:00 +0000

Type Values Removed Values Added
Description pypdf is a free and open-source pure-python PDF library. Prior to 6.16.1, an attacker can craft a PDF that causes pypdf/_doc_common.py _get_outline to consume long runtimes and large amounts of memory when retrieving document outlines with large numbers of entries or deeply nested reused paths because the traversal lacked global entry-count and nesting-depth limits. This issue is fixed in version 6.16.1.
Title pypdf: Possible long runtimes/large memory usage when retrieving outlines
Weaknesses CWE-405
CWE-834
References
Metrics cvssV4_0

{'score': 4.8, 'vector': 'CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-04T02:07:48.971Z

Reserved: 2026-09-01T16:17:43.079Z

Link: CVE-2026-84310

cve-icon Vulnrichment

Updated: 2026-09-04T02:07:44.095Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-01T21:18:46.740

Modified: 2026-09-09T16:49:20.627

Link: CVE-2026-84310

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-01T20:00:59Z

Links: CVE-2026-84310 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-02T04:30:04Z

Weaknesses
  • CWE-405

    Asymmetric Resource Consumption (Amplification)

  • CWE-770

    Allocation of Resources Without Limits or Throttling

  • CWE-834

    Excessive Iteration