Pillow has a PDF Parsing Trailer Infinite Loop (DoS)
Moderate severity
GitHub Reviewed
Published
Apr 23, 2026
in
python-pillow/Pillow
•
Updated May 13, 2026
Description
Published to the GitHub Advisory Database
May 4, 2026
Reviewed
May 4, 2026
Published by the National Vulnerability Database
May 9, 2026
Last updated
May 13, 2026
Impact
An attacker can supply a malicious PDF that causes the process to hang indefinitely, consuming 100% CPU and making the application unresponsive.
Patches
Patched version: 12.2.0.
PdfParser (introduced in Pillow 4.2.0) follows Prev pointers in PDF trailers to read cross-reference sections. If a
trailer's Prev pointer references an offset that has already been processed — either pointing to itself or forming a
longer cycle — the parser enters an infinite loop. Pillow now tracks previously processed trailer offsets and raises an
error if a cycle is detected.
Workarounds
Use any version but the affected versions: >= 4.2.0, < 12.2.0
Resources
References