Skip to content

Manipulated stream length values can exhaust RAM

Moderate
stefan6419846 published GHSA-hqmh-ppp3-xvm7 Mar 9, 2026

Package

pip pypdf (pip)

Affected versions

< 6.8.0

Patched versions

>= 6.8.0

Description

Impact

An attacker who uses this vulnerability can craft a PDF which leads to large memory usage. This requires parsing a content stream with a rather large /Length value, regardless of the actual data length inside the stream.

Patches

This has been fixed in pypdf==6.8.0.

Workarounds

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

As far as we are aware, this mostly affects reading from buffers of unknown size, as returned by open("file.pdf", mode="rb") for example. Passing a file path or a BytesIO buffer to pypdf instead does not seem to trigger the vulnerability.

Severity

Moderate

CVE ID

CVE-2026-31826

Weaknesses

Allocation of Resources Without Limits or Throttling

The product allocates a reusable resource or group of resources on behalf of an actor without imposing any intended restrictions on the size or number of resources that can be allocated. Learn more on MITRE.

Credits