Skip to main content
← All vulnerabilities
CVE-2026-119205EUVD-2026-113377GHSA-MFR5-77XH-9J7H

pypdf: Possible infinite loop when cloning dictionaries

Affects pypdf versions before 6.21.4 where code clones or duplicates a DictionaryObject. Fixed in pypdf 6.21.4.

Published
Last modified
published
Not listed in CISA KEV
Specific setups only
Fix
Fixed in 6.21.4
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

pypdf, a free and open-source pure-Python library for working with PDF files, is affected by this vulnerability. A specially crafted PDF with a cyclic dictionary structure can cause the library to hang in an infinite loop when it copies or duplicates that content, which can stall the application using it.

Summarized by anthropic/claude-haiku-5.5. Verify details against the original sources.

Read the original description

pypdf is a free and open-source pure-python PDF library. Prior to 6.21.4, pypdf can enter an infinite loop when cloning or duplicating a crafted cyclic DictionaryObject. Clone traversal checked generated destination references rather than the original source references, allowing some source cycles to evade the visited-object check. This issue is fixed in version 6.21.4.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  4. Record last updated

Affected versions

  • py-pdf pypdf

    fixed in 6.21.4

References 4

GitHub · py-pdf/pypdf

FAQ

Questions about CVE-2026-119205

What does this mean?

A crafted PDF can make pypdf enter an infinite loop when it clones a cyclic dictionary, which causes a denial of service.Source: github.com

Am I affected, and how do I check?

The advisory lists pypdf releases before 6.21.4 as affected. The bug only triggers when code clones or duplicates a DictionaryObject; check the installed version with pip show pypdf.Source: github.com

What should I do about it?

Upgrade to pypdf 6.21.4 or later, which contains the fix. The listed workaround is to apply the changes from PR #4288.Source: github.com

Is it being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data