Skip to content
Heist/ feed
High

Pillow PDF append accepts malformed shared page-tree DAG causing resource exhaustion

Type: advisorySource: Official CVE List1 source record

Pillow is a Python imaging library. From 5.1.0 until 13.0.0, PdfParser.linearize_page_tree() in src/PIL/PdfParser.py treats a PDF /Pages graph as a tree without tracking duplicate indirect references. When Image.save(..., format="PDF", append=True) processes an attacker-controlled existing PDF whose /Kids arrays repeatedly reference the same child /Pages node, Pillow expands the shared subtree as distinct pages. A compact malformed PDF can therefore create exponentially many page references and consume disproportionate CPU before the append completes. This issue is fixed in version 13.0.0.

Announced Group revision 1
Original source ↗

CVE-2026-96640

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-96640

Pillow

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "vendor": "python-pillow",
    "product": "Pillow",
    "versions": [
      {
        "status": "affected",
        "version": ">= 5.1.0, < 13.0.0"
      }
    ]
  }
]
Related CVEs
CVE-2026-96640

Source reference: /cveMetadata/cveId

Publisher severity

high

Source reference: /containers/cna/metrics

Event
#49973 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement