IT SBIT Services
Schneeberger
DEEN
CVE tracker

pypdf: Long runtimes and denial of service via malformed FlateDecode streams

CVE-2026-102997High 8.7

← All vulnerabilities

Summary

pypdf, a pure-Python PDF library, can be forced into inefficient byte-by-byte decompression of a crafted PDF with a partially malformed /FlateDecode stream. The recovery counter does not advance for bytes that decode successfully, which leads to very long runtimes. An attacker who can submit PDF files to an application that parses them with pypdf can make it unavailable; no authentication or user interaction is required. This is a residual issue after an earlier fix for malformed FlateDecode recovery.

Affected

  • pypdf versions before 6.18.1

Fixed in

  • pypdf 6.18.1 (fix in commit d9d38cf and PR #4073)

Workaround

  • If an upgrade is not possible yet, apply the changes from PR #4073 (vendor suggestion).
  • Enforce a timeout on PDF processing jobs as a temporary stopgap (not verified by the vendor).

Exploitation

  • No evidence of exploitation in the wild found.
  • CISA SSVC: Exploitation none, Automatable no, Technical Impact partial.
  • No public exploit code found in the sources reviewed.

Our recommendation

  • Identify all applications, containers and locked dependency files that use pypdf.
  • Upgrade pypdf to 6.18.1 or later, and rebuild and redeploy affected containers and applications.
  • Prioritise internet-facing or upload-enabled services that parse untrusted PDFs.
  • Check whether distribution packages still ship older versions, as they may lag behind.
  • Monitor for high CPU usage or unresponsive PDF processing jobs.

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:25.

Original description (NVD)

pypdf is a free and open-source pure-python PDF library. Prior to 6.18.1, a crafted PDF containing a partially malformed /FlateDecode stream with padded data can force pypdf/filters.py to use inefficient byte-by-byte decompression while the earlier recovery counter fails to advance for bytes that successfully decode, causing long runtimes and application unavailability. This is a residual issue after the malformed FlateDecode recovery fix. This issue is fixed in version 6.18.1.

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.