All vulnerabilities
CVE-2026-115585GHSA-jr96-gvgh-j3r4

pypdf: Possible long runtimes for repeated malformed cross-reference entries (Follow-up)

py-pdf pypdfpipLibraries & packages
CVSS
7.1High
ExploitationNo known exploitationNot in CISA KEV, which does not prove it is unexploitedCISA KEV
Exploit odds (EPSS)No scoreNo FIRST EPSS score in this snapshot yet
Fixed in6.21.2Fixed versionGitHub
Published23 Oct 2026Updated 23 Oct 2026CVE List

What fixes it

  • 6.21.2pypdf, pipGitHub
  • 6.21.2pypdf, PyPIOSVpip install "pypdf>=6.21.2"

A fixed version on one release line is not the upgrade target for every line. Check your exact version and any vendor backports.

Reports 2

2 outlets mention it. Reports are not confirmation; each links to its source.

Description

Impact

An attacker who uses this vulnerability can craft a PDF which leads to long runtimes. This requires cross-reference streams with repeated malformed cross-reference streams.

Patches

This has been fixed in pypdf==6.21.2.

Workarounds

If you cannot upgrade yet, consider applying the changes from PR #4240.

Notes

This is a follow-up to https://github.com/py-pdf/pypdf/security/advisories/GHSA-55h5-xmcq-c37v, which had the side-effect of still loading the whole stream again despite the cache being present.

Text from GitHub Advisory Database

Affected versions 53

  • pypdf, pip< 6.21.2GitHub
  • pypdfaffected: < 6.21.2CVE List
  • pypdf, PyPIfrom first release, fixed in 6.21.2OSV
  • pypdf, PyPI1.0OSV
  • pypdf, PyPI1.1OSV
  • pypdf, PyPI1.10OSV
  • pypdf, PyPI1.11OSV
  • pypdf, PyPI1.12OSV
  • pypdf, PyPI1.13OSV
  • pypdf, PyPI1.2OSV
  • pypdf, PyPI1.3OSV
  • pypdf, PyPI1.4OSV
  • pypdf, PyPI1.5OSV
  • pypdf, PyPI1.6OSV
  • pypdf, PyPI1.7OSV
  • pypdf, PyPI1.8OSV
  • pypdf, PyPI1.9OSV
  • pypdf, PyPI3.1.0OSV
  • pypdf, PyPI3.10.0OSV
  • pypdf, PyPI3.11.0OSV
  • pypdf, PyPI3.11.1OSV
  • pypdf, PyPI3.12.0OSV
  • pypdf, PyPI3.12.1OSV
  • pypdf, PyPI3.12.2OSV
  • pypdf, PyPI3.13.0OSV
  • pypdf, PyPI3.14.0OSV
  • pypdf, PyPI3.15.0OSV
  • pypdf, PyPI3.15.1OSV
  • pypdf, PyPI3.15.2OSV
  • pypdf, PyPI3.15.3OSV
  • pypdf, PyPI3.15.4OSV
  • pypdf, PyPI3.15.5OSV
  • pypdf, PyPI3.16.0OSV
  • pypdf, PyPI3.16.1OSV
  • pypdf, PyPI3.16.2OSV
  • pypdf, PyPI3.16.3OSV
  • pypdf, PyPI3.16.4OSV
  • pypdf, PyPI3.17.0OSV
  • pypdf, PyPI3.17.1OSV
  • pypdf, PyPI3.17.2OSV
  • pypdf, PyPI3.17.3OSV
  • pypdf, PyPI3.17.4OSV
  • pypdf, PyPI3.2.0OSV
  • pypdf, PyPI3.2.1OSV
  • pypdf, PyPI3.3.0OSV
  • pypdf, PyPI3.4.0OSV
  • pypdf, PyPI3.4.1OSV
  • pypdf, PyPI3.5.0OSV
  • pypdf, PyPI3.5.1OSV
  • pypdf, PyPI3.5.2OSV
  • pypdf, PyPI3.6.0OSV
  • pypdf, PyPI3.7.0OSV
  • pypdf, PyPI3.7.1OSV

References 5