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/_page.py PageObject._extract_text and PageObject.extract_xform_text to traverse a directed acyclic graph of reused form XObjects in which each form invokes a child multiple times, creating exponentially many traversal paths and causing long runtimes and large memory consumption. This issue is fixed in version 6.16.1.
Published: 2026-09-01
Score: 4.8 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch Immediately
AI Analysis

Impact

The vulnerability is located in pypdf/_page.py within the PageObject._extract_text and PageObject.extract_xform_text methods. A specially crafted PDF can force the library to walk a directed acyclic graph of reused XForm objects, where each form calls a child multiple times. This creates an exponential number of traversal paths that drastically increase runtime and memory usage. The effect is a denial of service through uncontrolled resource consumption, matching CWE-770.

Affected Systems

All releases of the py‑pdf:pypdf library before version 6.16.1 are affected. Any Python application that imports pypdf to parse or render PDFs from untrusted sources will be vulnerable, including web services, document conversion utilities, and email handlers that rely on the library for text extraction.

Risk and Exploitability

The CVSS score of 4.8 places the issue in the moderate range, and the EPSS score is not available, indicating no public exploits yet. Based on the description, it is inferred that the attack vector is the ingestion of a malicious PDF into any application that imports pypdf. The vulnerability can be triggered simply by providing such a PDF, causing the process to consume excessive CPU and memory, potentially leading to a service outage. The problem is not listed in CISA's KEV catalog, so it is not known to be actively exploited in the wild, but mitigation is recommended.

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

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade pypdf to version 6.16.1 or newer
  • Validate or reject PDFs from untrusted sources before processing with pypdf
  • Enforce hard limits on CPU and memory usage for PDF handling routines
  • Monitor application logs for abnormal CPU or memory spikes during PDF processing

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-763m-79hh-57f2 pypdf: Possible long runtimes/large memory usage when extracting XForm objects
History

Wed, 02 Sep 2026 17: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 02:30: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/_page.py PageObject._extract_text and PageObject.extract_xform_text to traverse a directed acyclic graph of reused form XObjects in which each form invokes a child multiple times, creating exponentially many traversal paths and causing long runtimes and large memory consumption. This issue is fixed in version 6.16.1.
Title pypdf: Possible long runtimes/large memory usage when extracting XForm objects
Weaknesses 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-02T16:02:25.222Z

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

Link: CVE-2026-84311

cve-icon Vulnrichment

Updated: 2026-09-02T13:42:22.743Z

cve-icon NVD

Status : Awaiting Analysis

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

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

Link: CVE-2026-84311

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-01T20:03:13Z

Links: CVE-2026-84311 - Bugzilla

cve-icon OpenCVE Enrichment

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

Weaknesses
  • CWE-770

    Allocation of Resources Without Limits or Throttling

  • CWE-834

    Excessive Iteration