CVE-2026-102999: pypdf repeated attachment parsing denial of service

CVE-2026-102999 · Severity: high · CVSS 4 · Published 2026-09-30

pypdf is a Python library for reading and manipulating PDF files. A malicious PDF with many embedded files can cause the attachment access API to repeatedly reparse the entire attachment list, leading to excessive processing time and potential denial of service. This issue is fixed in version 6.19.0.

Technologies: Py-Pdf Pypdf, pypdf (PyPI). Vendors: Py-Pdf, PyPI.

Quick answers

Is CVE-2026-102999 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-102999 being exploited in the wild.
How severe is CVE-2026-102999?
High severity, with a CVSS score of 4, published 30 September 2026.
Which products and versions are affected?
Py-Pdf Pypdf before 6.19.0; pypdf (PyPI) < 6.19.0, ECOSYSTEM:introduced=0,fixed=6.19.0.
Is there a fix for CVE-2026-102999?
Yes. pypdf (PyPI): upgrade to 6.19.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-102999 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-102999?
Check whether you run Py-Pdf Pypdf or pypdf (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • pypdf (PyPI): upgrade to 6.19.0 or later
    pip install "pypdf>=6.19.0"

Technical details

The vulnerability is an algorithmic inefficiency (ReDoS-like pattern) in the attachment mapping API in pypdf/_doc_common.py. Prior to version 6.19.0, each content lookup when iterating over attachments using .items() triggered a full reparse of the attachment list, resulting in O(n²) complexity for n attachments. An attacker can craft a PDF with many embedded files to trigger long runtimes. The fix caches attachment file objects per name for direct stream access.

Affected products

  • py-pdf pypdf before 6.19.0

Identifiers

  • CVE-2026-102999
  • GHSA-v247-6f48-mgcj
  • PYSEC-2026-4159

Timeline

  • 2026-09-30: disclosed
  • 2026-09-14: patched

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.