PatchSiren cyber security CVE debrief
CVE-2026-84309 py-pdf CVE debrief
CVE-2026-84309 is a vulnerability in the pypdf library, which is a free and open-source pure-python PDF library. An attacker can craft a PDF with a cyclic tree structure that 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.
- Vendor
- py-pdf
- Product
- pypdf
- CVSS
- MEDIUM 6.9
- CISA KEV
- Not listed in stored evidence
- Original CVE published
- 2026-09-01
- Original CVE updated
- 2026-10-05
- Advisory published
- 2026-09-01
- Advisory updated
- 2026-10-05
Who should care
Defenders responsible for maintaining and updating the pypdf library should prioritize updating to version 6.16.0 or later to prevent potential denial-of-service attacks. This includes operators, security teams, and vulnerability management teams that use the pypdf library in their products or services. Additionally, defenders who are responsible for reviewing and testing PDF processing code for potential vulnerabilities should also be aware of this issue.
Why it matters
Defenders should prioritize updating to version 6.16.0 or later to prevent potential denial-of-service attacks due to the vulnerability in the pypdf library.
- Potential denial-of-service attacks
- Increased risk of system crashes or freezes
Technical summary
The pypdf library is vulnerable to a denial-of-service attack due to an infinite loop caused by a cyclic tree structure in a PDF. This issue is fixed in version 6.16.0. The vulnerability is caused by the TreeObject.insert_child function in pypdf/generic/_data_structures.py, which can follow /Next links indefinitely when a writing code path inserts a child, producing an infinite loop. Defenders should prioritize updating to version 6.16.0 or later to prevent potential denial-of-service attacks. The CVE record and NVD vulnerability detail page provide information about the vulnerability, including its description, CVSS score, and affected versions.
Defensive priority
Defenders should prioritize updating to version 6.16.0 or later to prevent potential denial-of-service attacks.
Recommended defensive actions
- Update to version 6.16.0 or later
- Review and test PDF processing code for potential vulnerabilities
- Confirm whether affected product deployments exist in managed environments and assign an owner for follow-up
- Review the supplied official advisory or CVE record to validate affected scope, severity, and vendor guidance
- Plan vendor-supported updates or mitigations through normal change control where exposure is confirmed
- Track exceptions, retest remediated assets, and close the item only after evidence is documented.
- Check relevant monitoring, detection, and logs for exposed assets that need extra review
Evidence notes
The CVE record and NVD vulnerability detail page provide information about the vulnerability, including its description, CVSS score, and affected versions. The pypdf library is a free and open-source pure-python PDF library. An attacker can craft a PDF with a cyclic tree structure that 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. Defenders should verify the affected scope,
Sources and references
Verified primary and authoritative sources
-
CVE-2026-84309 CVE Program record
Publisher, destination, and source semantics verified
URL: https://www.cve.org/CVERecord?id=CVE-2026-84309
CVE Program - Official CVE Program record with source-provided CVE metadata.
-
CVE-2026-84309 NVD vulnerability detail
Publisher, destination, and source semantics verified
URL: https://nvd.nist.gov/vuln/detail/CVE-2026-84309
NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.
Supplemental references
-
Source reference
Unverified legacy reference
URL: https://github.com/py-pdf/pypdf/commit/c9ba557d565d57c53a0b3a0be06c0a4c29b0559b
[email protected] - Patch
-
Source reference
Unverified legacy reference
URL: https://github.com/py-pdf/pypdf/pull/3964
[email protected] - Patch
-
Source reference
Unverified legacy reference
URL: https://github.com/py-pdf/pypdf/releases/tag/6.16.0
[email protected] - Release Notes
-
Source reference
Unverified legacy reference
URL: https://github.com/py-pdf/pypdf/security/advisories/GHSA-jp53-mhqp-8xcg
[email protected] - Patch, Vendor Advisory
Methodology and review provenance
AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.