# CVE-2026-113791: pypdf ReDoS via crafted PDF content stream

Source: https://junglewise.ai/threats/cve-2026-113791-pypdf-is-a-free-and-open-source-pure-python-pdf-library-prior-to  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-10-21. Updated: 2026-10-21  
License: CC BY 4.0 with a link back

CVE-2026-113791 · Severity: medium · CVSS 4 · Published 2026-10-21

pypdf is a Python library for reading and writing PDF files. An attacker can craft a malicious PDF with many small operations in its content stream to force excessive memory consumption during parsing, potentially causing a denial of service or application crash.

Technologies: [Pypdf](https://junglewise.ai/threats/technologies/pypdf-pypdf), [pypdf (PyPI)](https://junglewise.ai/threats/technologies/pypdf). Vendors: [Pypdf](https://junglewise.ai/threats/vendors/pypdf), [PyPI](https://junglewise.ai/threats/vendors/pypi).

## Quick answers

**Is CVE-2026-113791 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-113791 being exploited in the wild.

**How severe is CVE-2026-113791?** Medium severity, with a CVSS score of 4, published 21 October 2026.

**Which products and versions are affected?** Pypdf before 6.21.0; pypdf (PyPI) < 6.21.0, ECOSYSTEM:introduced=0,fixed=6.21.0.

**Is there a fix for CVE-2026-113791?** Yes. pypdf (PyPI): upgrade to 6.21.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-113791 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-113791?** Check whether you run Pypdf or pypdf (PyPI) at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- pypdf (PyPI): upgrade to 6.21.0 or later

  ```sh
  pip install "pypdf>=6.21.0"
  ```


## Technical details

A regular expression denial of service (ReDoS) vulnerability exists in pypdf's PDF content stream parsing logic prior to 6.21.0. An attacker can craft a PDF with a content stream containing many small operations that causes the parser to consume large amounts of memory and CPU while processing, even when the stream length itself does not exceed normal limits. The fix introduces configurable parsing limits on stream work, array element counts, and dictionary key-value pair counts.

## Affected products

- pypdf pypdf before 6.21.0

## Identifiers

- CVE-2026-113791
- GHSA-cgf9-327m-v77c

## Timeline

- 2026-10-21: disclosed
- 2026-10-16: patched

## References

- [https://github.com/py-pdf/pypdf/commit/18bd2981a74479483a0b9507602c58a63d6c9b12](https://github.com/py-pdf/pypdf/commit/18bd2981a74479483a0b9507602c58a63d6c9b12)
- [https://github.com/py-pdf/pypdf/pull/4218](https://github.com/py-pdf/pypdf/pull/4218)

## Related threats

- [pypdf memory exhaustion in cross-reference stream parsing](https://junglewise.ai/threats/cve-2026-119209-pypdf-is-a-free-and-open-source-pure-python-pdf-library-prior-to)
- [pypdf denial of service via forged encrypted PDF page count](https://junglewise.ai/threats/cve-2026-119208-pypdf-is-a-free-and-open-source-pure-python-pdf-library-prior-to)
- [pypdf excessive memory consumption in strict mode PDF parsing](https://junglewise.ai/threats/cve-2026-119207-pypdf-is-a-free-and-open-source-pure-python-pdf-library-prior-to)
- [pypdf denial of service via crafted page labels](https://junglewise.ai/threats/cve-2026-119206-pypdf-is-a-free-and-open-source-pure-python-pdf-library-prior-to)
- [pypdf infinite loop in DictionaryObject cloning](https://junglewise.ai/threats/cve-2026-119205-pypdf-is-a-free-and-open-source-pure-python-pdf-library-prior-to)
