Read the docs

Uncontrolled recursion in Pillow PDF parser causes denial of service

Priority MEDIUM 44CWE-674Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
None
Attack complexity
Low
Attack requirements
None
Impact type
Denial of service
Confidentiality · integrity · availability
None · None · High
Fix status
Partial Red Hat: 10 fixed, 9 without a fix

Attack profile from CVSS 4.0 · CNA. Fix status from CNA, GitHub and Red Hat. Impact type from CWE-674.

Summary

Pillow from 5.1.0 before 13.0.0 has uncontrolled recursion (CWE-674) in its PDF parser, which follows page-tree and trailer references without cycle tracking. An unauthenticated remote attacker can supply a crafted PDF to an application calling Image.save with PDF append enabled, causing denial of service through a RecursionError or excessive CPU and memory use. A public exploit is linked in the references.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

Description from the CNA

Pillow is a Python imaging library. From 5.1.0 until 13.0.0, Pillow can exhaust resources while parsing an existing PDF during an append operation. PdfParser follows page-tree child references without cycle or duplication tracking and follows previous-trailer chains with only an exact repeated-offset guard, so deep or cyclic page trees and long chains of unique trailer offsets can exhaust the Python stack. Repeated non-cyclic /Kids references can also cause super-linear CPU and memory use. An attacker can supply such a PDF to an application that calls Image.save with PDF append enabled. This can raise an uncaught RecursionError or consume excessive CPU and memory before output is written, causing denial of service. This issue is fixed in version 13.0.0.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00594 48th percentileScored 2026-11-07
Public exploit Yes 1 exploit referenceTagged by NVD
Fix Partial Pillow (python-pillow): 13.0.0pillow (PyPI): 13.0.0Red Hat: 13 advisoriesRed Hat: 10 fixed, 9 without a fix

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
Yes
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
python-pillowPillow5.1.0 to before 13.0.013.0.0Patch availableCNA
—pillow (PyPI)5.1.0 to before 13.0.013.0.0Patch availableGHSA-p4wg-p73j-c528
  • Pillow Vendorpython-pillow Affected 5.1.0 to before 13.0.0 Fixed in 13.0.0 Patch available CNA
  • pillow (PyPI) Vendor— Affected 5.1.0 to before 13.0.0 Fixed in 13.0.0 Patch available GHSA-p4wg-p73j-c528

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:python:pillow:*:*:*:*:*:*:*:*5.1.0 to before 13.0.0Vulnerablepython-pillow
  • cpe:2.3:a:python:pillow:*:*:*:*:*:*:*:* Versions 5.1.0 to before 13.0.0 Vulnerable ·python-pillow

Remediation

Upgrade Pillow and the PyPI package pillow to version 13.0.0. Red Hat fixes python-pillow in RHSA-2026:92639 for RHEL 8 AppStream and CRB, Satellite 6.19 in RHSA-2026:92861, and OpenShift AI 3.4 and 3.5 in RHSA-2026:92510 and RHSA-2026:94631. Red Hat lists Red Hat AI Inference Server with no fix planned and Red Hat OpenShift AI (RHOAI) with no fix available.

Written with Claude Haiku 5.5 from the sources below · 2026-11-06

  • Fix · CNA Pillow (python-pillow) Fixed in 13.0.0
  • Fix · GHSA-p4wg-p73j-c528 pillow (PyPI) Fixed in 13.0.0 Advisory →

Red Hat 13 advisories

  • RHSA-2026:95655 Released 2026-11-05 · Red Hat rating Critical
    Satellite 6.16 EUS security update
    • Red Hat Satellite 6.16 for RHEL 8 openvox-agent-8.32.0-1.el8sat, openvox-server-8.18.0-1.el8sat, python-brotli-1.2.1-1.el8pc +11
    • Red Hat Satellite 6.16 for RHEL 9 openvox-agent-8.32.0-1.el9sat, openvox-server-8.18.0-1.el9sat, python-brotli-1.2.1-1.el9pc +11
  • RHSA-2026:95657 Released 2026-11-05 · Red Hat rating Critical
    Satellite 6.18 security update
    • Red Hat Satellite 6.18 for RHEL 9 openvox-agent-8.32.0-1.el9sat, openvox-server-8.18.0-1.el9sat, python3.12-brotli-1.2.1-1.el9pc +4
  • RHSA-2026:95656 Released 2026-11-05 · Red Hat rating Critical
    Satellite 6.17 security update
    • Red Hat Satellite 6.17 for RHEL 9 openvox-agent-8.32.0-1.el9sat, openvox-server-8.18.0-1.el9sat, python-brotli-1.2.1-1.el9pc +9
Show 10 more Red Hat advisories
  • RHSA-2026:94738 Released 2026-11-03 · Red Hat rating Critical
    Red Hat AI Inference 3.5.3 (CUDA)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-cuda-rhel9
  • RHSA-2026:94721 Released 2026-11-03 · Red Hat rating Critical
    Red Hat AI Inference Tech Preview 3.5.3 (Gaudi)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-gaudi-rhel9
  • RHSA-2026:94717 Released 2026-11-03 · Red Hat rating Critical
    Red Hat AI Inference 3.5.3 (Spyre)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-spyre-rhel9
  • RHSA-2026:94715 Released 2026-11-03 · Red Hat rating Critical
    Red Hat AI Inference Model Optimization Tools 3.5.3 (CUDA)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/model-opt-cuda-rhel9
  • RHSA-2026:94709 Released 2026-11-03 · Red Hat rating Critical
    Red Hat AI Inference 3.5.3 (ROCm)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-rocm-rhel9
  • RHSA-2026:94702 Released 2026-11-03 · Red Hat rating Critical
    Red Hat AI Inference 3.5.3 (CPU)
    • Red Hat AI Inference Server 3.5 registry.redhat.io/rhaii/vllm-cpu-rhel9
  • RHSA-2026:94631 Released 2026-11-03 · Red Hat rating Critical
    GuideLLM 3.5.1
    • Red Hat OpenShift AI 3.5 registry.redhat.io/rhai/guidellm-rhel9
  • RHSA-2026:92639 Released 2026-10-29 · Red Hat rating Important
    python-pillow security update
    • Red Hat Enterprise Linux AppStream (v. 8) python-pillow-5.1.1-33.el8_10, python3-pillow-5.1.1-33.el8_10
    • Red Hat Enterprise Linux CRB (v. 8) python3-pillow-5.1.1-33.el8_10, python3-pillow-devel-5.1.1-33.el8_10, python3-pillow-doc-5.1.1-33.el8_10 +1
  • RHSA-2026:92861 Released 2026-10-29 · Red Hat rating Critical
    Satellite 6.19 security update
    • Red Hat Satellite 6.19 for RHEL 9 openvox-agent-8.31.1-1.el9sat, openvox-server-8.17.0-1.el9sat, python3.12-brotli-1.2.1-1.el9pc +6
  • RHSA-2026:92510 Released 2026-10-29 · Red Hat rating Critical
    RHOAI 3.4.6 - Red Hat OpenShift AI
    • Red Hat OpenShift AI 3.4 registry.redhat.io/rhoai/odh-built-in-detector-rhel9, registry.redhat.io/rhoai/odh-cli-rhel9, registry.redhat.io/rhoai/odh-dashboard-rhel9 +47

Vendor assessments

Red Hat

Red Hat rating: Important. Red Hat's page for this CVE →

ProductStatusPlan or fix
Exploit IntelligenceAffectedNo fix yet
Lightspeed CoreAffectedNo fix yet
OpenShift LightspeedAffectedNo fix yet
Red Hat AI Inference ServerAffectedNo fix planned: Will not fix
Red Hat Ansible Automation Platform 2AffectedNo fix yet
Red Hat Enterprise Linux AI (RHEL AI) 3AffectedNo fix yet
Red Hat Lightspeed Services for OCPAffectedNo fix yet
Red Hat OpenShift AI (RHOAI)AffectedNo fix yet
Red Hat Quay 3AffectedNo fix yet
Red Hat AI Inference Server 3.5Fixed RHSA-2026:94702, RHSA-2026:94709, RHSA-2026:94715, RHSA-2026:94717, RHSA-2026:94721, RHSA-2026:94738
Red Hat Enterprise Linux AppStream (v. 8)Fixed RHSA-2026:92639
Red Hat Enterprise Linux CRB (v. 8)Fixed RHSA-2026:92639
Red Hat OpenShift AI 3.4Fixed RHSA-2026:92510
Red Hat OpenShift AI 3.5Fixed RHSA-2026:94631
Red Hat Satellite 6.16 for RHEL 8Fixed RHSA-2026:95655
Red Hat Satellite 6.16 for RHEL 9Fixed RHSA-2026:95655
Red Hat Satellite 6.17 for RHEL 9Fixed RHSA-2026:95656
Red Hat Satellite 6.18 for RHEL 9Fixed RHSA-2026:95657
Red Hat Satellite 6.19 for RHEL 9Fixed RHSA-2026:92861
Not affected: 9 products
  • Red Hat AI Inference Server
  • Red Hat Ansible Automation Platform 2
  • Red Hat OpenShift AI (RHOAI)
  • Red Hat OpenShift AI 3.4
  • Red Hat Satellite 6.16 for RHEL 8
  • Red Hat Satellite 6.16 for RHEL 9
  • Red Hat Satellite 6.17 for RHEL 9
  • Red Hat Satellite 6.18 for RHEL 9
  • Red Hat Satellite 6.19 for RHEL 9

Timeline

  1. 2026-10-20 Threatist record created from CVE-2026-112895
  2. 2026-10-20 Affected versions changed · Red Hat
  3. 2026-10-20 CVSS score added · Red Hat
  4. 2026-10-20 CISA SSVC decision points changed
  5. 2026-10-21 Alias added: GHSA-p4wg-p73j-c528
  6. 2026-10-21 Fix available: PyPI/[email protected] · GHSA-p4wg-p73j-c528
  7. 2026-10-21 CVSS score added · GHSA-p4wg-p73j-c528
  8. 2026-10-21 Weakness changed · GHSA-p4wg-p73j-c528
  9. 2026-10-21 5 new references · GHSA-p4wg-p73j-c528
  10. 2026-10-21 Affected versions changed · Red Hat
  11. 2026-10-27 CVSS score added · NVD
  12. 2026-10-30 Fix available: RHSA-2026:92510 · Red Hat
  13. 2026-10-30 Fix available: RHSA-2026:92639 · Red Hat
  14. 2026-10-30 Fix available: Red Hat Enterprise Linux AppStream (v. 8), Red Hat Enterprise Linux CRB (v. 8), Red Hat OpenShift AI 3.4 · Red Hat
  15. 2026-10-30 Fix available: Red Hat Satellite 6.19 for RHEL 9 · Red Hat
  16. 2026-10-31 Fix available: RHSA-2026:92861 · Red Hat
  17. 2026-11-04 Fix available: RHSA-2026:94717 · Red Hat
  18. 2026-11-04 Fix available: RHSA-2026:94715 · Red Hat
  19. 2026-11-04 Fix available: RHSA-2026:94709 · Red Hat
  20. 2026-11-04 Fix available: RHSA-2026:94738 · Red Hat
  21. 2026-11-04 Fix available: RHSA-2026:94702 · Red Hat
  22. 2026-11-04 Fix available: RHSA-2026:94631 · Red Hat
  23. 2026-11-04 Fix available: RHSA-2026:94721 · Red Hat
  24. 2026-11-04 Fix available: Red Hat AI Inference Server 3.5, Red Hat OpenShift AI 3.5 · Red Hat
  25. 2026-11-06 Fix available: Red Hat Satellite 6.16 for RHEL 8, Red Hat Satellite 6.16 for RHEL 9, Red Hat Satellite 6.17 for RHEL 9 +1 · Red Hat
  26. 2026-11-06 Fix available: RHSA-2026:95656 · Red Hat
  27. 2026-11-06 Fix available: RHSA-2026:95655 · Red Hat
  28. 2026-11-06 Fix available: RHSA-2026:95657 · Red Hat

References

  • TI-2026-76627 Out-of-bounds read in Pillow TIFF encoder ColorMap handling CVSS 4.0HIGH 8.8
  • TI-2026-76625 Quadratic-time denial of service in Pillow PDF save_all CVSS 4.0HIGH 8.7
  • TI-2026-76605 NULL pointer dereference in Pillow's Image.merge function CVSS 4.0HIGH 8.7
  • TI-2026-76604 Out-of-bounds read in Pillow TIFF decoding leaks heap memory CVSS 4.0HIGH 8.8
  • TI-2026-76602 Double free in Pillow ImagingScaleAffine on allocation failure CVSS 4.0HIGH 8.7
  • TI-2026-76600 GIF seek in Pillow keeps rejected size, allowing denial of service CVSS 4.0HIGH 8.7
See all 110 →

Sources