Read the docs

Excessive memory use in pypdf when parsing cross-reference streams

Priority LOW 37CWE-400Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
Passive
Attack complexity
Low
Attack requirements
None
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · High
Fix status
Partial Red Hat: 7 without a fix

Attack profile from CVSS 4.0 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-400.

Summary

pypdf before 6.21.3 consumes excessive memory when it opens a crafted PDF whose cross-reference streams declare very large entry counts (CWE-400). A remote attacker can trigger this by supplying a PDF that a user opens, which exhausts memory and affects availability. Highly compressible streams and /Prev chains multiply the parsed entries, and negative /Index counts bypass the existing per-stream clamp.

Written with Claude Haiku 5.5 from the sources below · 2026-10-31

Description from the CNA

pypdf is a free and open-source pure-python PDF library. Prior to 6.21.3, pypdf can consume excessive memory while opening a crafted PDF containing cross-reference streams that declare very large entry counts. Highly compressible streams and /Prev chains can multiply the number of parsed entries across a document, while negative /Index counts can bypass the existing per-stream clamp. This issue is fixed in version 6.21.3.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00268 19th percentileScored 2026-11-07
Fix Partial pypdf (py-pdf): 6.21.3pypdf (PyPI): 6.21.3Red Hat: 7 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
py-pdfpypdfbefore 6.21.36.21.3Patch availableCNA
—pypdf (PyPI)before 6.21.36.21.3Patch availableGHSA-x3rh-gjgm-fmqc
  • pypdf Vendorpy-pdf Affected before 6.21.3 Fixed in 6.21.3 Patch available CNA
  • pypdf (PyPI) Vendor— Affected before 6.21.3 Fixed in 6.21.3 Patch available GHSA-x3rh-gjgm-fmqc

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:py-pdf:pypdf:*:*:*:*:*:*:*:*before 6.21.3Vulnerablepy-pdf
  • cpe:2.3:a:py-pdf:pypdf:*:*:*:*:*:*:*:* Versions before 6.21.3 Vulnerable ·py-pdf

Remediation

Upgrade pypdf to version 6.21.3, which fixes the issue. The sources list no fixed version for Ansible Automation Orchestrator 2026, Lightspeed Core, OpenShift Lightspeed, Red Hat Enterprise Linux AI (RHEL AI) 3 and Red Hat OpenShift AI (RHOAI), and no fix planned for Red Hat Ansible Automation Platform 2 and Red Hat Quay 3.

Written with Claude Haiku 5.5 from the sources below · 2026-10-31

  • Fix · CNA pypdf (py-pdf) Fixed in 6.21.3
  • Fix · GHSA-x3rh-gjgm-fmqc pypdf (PyPI) Fixed in 6.21.3 Advisory →

Vendor assessments

Red Hat

Red Hat rating: Moderate. Red Hat's page for this CVE →

ProductStatusPlan or fix
Ansible Automation Orchestrator 2026AffectedNo fix yet: Fix deferred
Lightspeed CoreAffectedNo fix yet: Fix deferred
OpenShift LightspeedAffectedNo fix yet: Fix deferred
Red Hat Ansible Automation Platform 2AffectedNo fix planned: Out of support scope
Red Hat Enterprise Linux AI (RHEL AI) 3AffectedNo fix yet: Fix deferred
Red Hat OpenShift AI (RHOAI)AffectedNo fix yet: Fix deferred
Red Hat Quay 3AffectedNo fix planned: Out of support scope

Timeline

  1. 2026-10-29 Threatist record created from CVE-2026-119209
  2. 2026-10-30 Affected versions changed · Red Hat
  3. 2026-10-30 CVSS score added · Red Hat
  4. 2026-10-30 CISA SSVC decision points changed
  5. 2026-10-30 Priority changed: MEDIUM → LOW
  6. 2026-10-30 Alias added: GHSA-x3rh-gjgm-fmqc
  7. 2026-10-30 Fix available: PyPI/[email protected] · GHSA-x3rh-gjgm-fmqc
  8. 2026-10-30 CVSS score added · GHSA-x3rh-gjgm-fmqc
  9. 2026-10-30 Weakness changed · GHSA-x3rh-gjgm-fmqc
  10. 2026-10-30 6 new references · GHSA-x3rh-gjgm-fmqc
  11. 2026-10-31 CVSS score added · NVD

References

  • TI-2023-18601 Infinite Loop when reading malformed objects in pypdf CVSS 3.1MEDIUM 6.5
  • TI-2023-18305 Infinite Loop when a comment isn't followed by a character in pypdf CVSS 3.1MEDIUM 6.2
  • TI-2026-42743 pypdf: Possible infinite loop for not terminated inline images CVSS 4.0HIGH 8.7
  • TI-2026-42742 pypdf: Possible infinite loop for not terminated inline images (ASCII85 and ASCIIHex filter) CVSS 4.0HIGH 8.7
  • TI-2026-65557 pypdf: Possible large memory usage when retrieving alphabetical page labels CVSS 4.0HIGH 8.7
  • TI-2026-65556 pypdf: Possible long runtimes with large amount of embedded files CVSS 4.0HIGH 8.7
See all 65 →

Sources