pypdf: manipulated stream length values can exhaust RAM
Description
Published by the National Vulnerability Database
Mar 10, 2026
Published to the GitHub Advisory Database
Mar 11, 2026
Reviewed
Mar 11, 2026
Last updated
Mar 11, 2026
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
/Lengthvalue, 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 aBytesIObuffer to pypdf instead does not seem to trigger the vulnerability.References