Description
pypdf is a free and open-source pure-python PDF library. Prior to 6.16.0, an attacker can craft a PDF whose cyclic tree structure causes pypdf/generic/_data_structures.py TreeObject.insert_child to follow /Next links indefinitely when a writing code path inserts a child, producing an infinite loop. This issue is fixed in version 6.16.0.
Published: 2026-09-01
Score: 6.9 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service
Action: Patch Now
AI Analysis

Impact

The vulnerability in the pypdf library causes the TreeObject.insert_child method to follow /Next links indefinitely when a cyclic tree structure is inserted, resulting in an infinite loop. This loop can exhaust system resources, leading to a denial of service for any process that processes a malicious PDF. The weakness is identified as CWE-835, an infinite loop condition that can be exploited by an attacker crafting a PDF with a cyclic tree.

Affected Systems

The issue affects the pypdf library from the py-pdf vendor. All installed versions prior to 6.16.0 are vulnerable; the problem is resolved in version 6.16.0 and later releases.

Risk and Exploitability

The CVSS score of 6.9 indicates moderate severity. An attacker must provide a malicious PDF that the target application processes, which is a realistic scenario for email attachments, document uploads, or any PDF ingestion point. While the EPSS score is currently not available, the absence from the CISA KEV catalog suggests that known exploits have not yet manifested widely. The risk is therefore moderate with a clear exploit path through crafted PDFs.

Generated by OpenCVE AI on September 2, 2026 at 02:59 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade the pypdf library to version 6.16.0 or newer to eliminate the infinite loop.
  • Implement PDF validation to detect cyclic tree structures before invoking the library’s write path, preventing the loop from being triggered.
  • Deploy resource monitoring and enforce CPU limits on processes that handle PDF parsing to mitigate potential denial-of-service impact if the vulnerability is encountered.
  • Review all dependent applications for older pypdf versions and update or replace them accordingly.

Generated by OpenCVE AI on September 2, 2026 at 02:59 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-jp53-mhqp-8xcg pypdf: Possible infinite loop for TreeObject.insert_child
History

Thu, 03 Sep 2026 12:15:00 +0000

Type Values Removed Values Added
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


Wed, 02 Sep 2026 10:45: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

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.0, an attacker can craft a PDF whose cyclic tree structure causes pypdf/generic/_data_structures.py TreeObject.insert_child to follow /Next links indefinitely when a writing code path inserts a child, producing an infinite loop. This issue is fixed in version 6.16.0.
Title pypdf: Possible infinite loop for TreeObject.insert_child
Weaknesses CWE-835
References
Metrics cvssV4_0

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


cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-09-02T13:41:31.258Z

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

Link: CVE-2026-84309

cve-icon Vulnrichment

Updated: 2026-09-02T13:41:27.469Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-09-01T20:17:25.027

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

Link: CVE-2026-84309

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-01T19:58:46Z

Links: CVE-2026-84309 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-09-02T03:00:13Z

Weaknesses
  • CWE-835

    Loop with Unreachable Exit Condition ('Infinite Loop')