IT SBIT Services
Schneeberger
DEEN
CVE tracker

pypdf: Uncontrolled resource consumption when parsing indirect objects

CVE-2026-102994High 8.7

← All vulnerabilities

Summary

pypdf is an open-source pure-Python library for reading and writing PDF files. Versions before 6.18.0 can be made to scan excessively long indirect-object tokens without whitespace, causing very long runtimes and high memory use. An attacker who can supply a crafted PDF to an application using pypdf can make that application slow or unavailable; no confidentiality or integrity impact is reported.

Affected

  • pypdf versions before 6.18.0

Fixed in

  • pypdf 6.18.0 (vendor advisory minimum; later releases such as 6.19.0 close related advisories from the same batch)

Workaround

  • No vendor workaround; the vendor recommends upgrading. If upgrading is not yet possible, apply the changes from PR #4055 (token length limit).

Exploitation

  • Not known to be exploited.
  • Not listed in CISA KEV according to a third-party tracker (not checked directly).
  • No public proof of concept known.
  • EPSS is low (about 0.3%).

Our recommendation

  • Identify applications that use pypdf, including indirect dependencies in lock files.
  • Upgrade to pypdf 6.18.0 or later; check PyPI for the newest release and whether your distribution has a backport.
  • Until patched, limit upload size and parsing time, run PDF parsing in a separate process with a timeout and memory limit, and quarantine PDFs with unusual header structures.
  • Prioritise internet-facing services that parse untrusted PDFs.

Public exploits

PoC-in-GitHub, Metasploit and Exploit-DB list nothing for this CVE.

Research sources

Researched and written up in English and German by an AI (Claude by Anthropic) based on NVD, CISA, EPSS and the sources listed. The vendor information is authoritative. Researched on 1 Nov 2026, 06:32.

Original description (NVD)

pypdf is a free and open-source pure-python PDF library. Prior to 6.18.0, a crafted PDF containing indirect-object identifiers or generation-number tokens that continue for a long time without whitespace can cause pypdf/_reader.py and pypdf/generic/_base.py to scan excessive input through read_until_whitespace, resulting in long runtimes and application unavailability. This issue is fixed in version 6.18.0.

NVD references (4)

Sources

The tracker combines official, freely usable data sources – updated continuously:

This product uses data from the NVD API but is not endorsed or certified by the NVD. EPSS data © FIRST.org.

Affected? We can help.

We check whether your systems are affected, install updates and close the gap – continuously with the System Health Checker if you wish.