PatchSiren

PatchSiren cyber security CVE debrief

CVE-2026-96636 python-pillow CVE debrief

Pillow's decompression-bomb protection bypass via multi-frame seek() in MPO and DCX allows denial of service (memory exhaustion / OOM) when loading crafted images. This vulnerability exists in the MpoImageFile.seek() and DcxImageFile.seek() methods, which do not re-run the decompression-bomb check on seek(). A crafted MPO or DCX image with a tiny first frame but large later frames can bypass the protection, leading to large memory commitment and potential denial of service attacks. Defenders should prioritize verifying and updating Pillow to version 13.0.0 or later, especially in applications handling MPO and DCX images.

Vendor
python-pillow
Product
pillow
CVSS
MEDIUM 6.5
CISA KEV
Not listed in stored evidence
Original CVE published
2026-10-22
Original CVE updated
2026-10-22
Advisory published
2026-10-22
Advisory updated
2026-10-22

Who should care

Defenders handling MPO and DCX images with Pillow, especially in applications with high memory usage or sensitive data, should prioritize verifying and updating Pillow to version 13.0.0 or later. This includes operators, platforms, vulnerability-management teams, and security teams that handle these image formats.

Why it matters

CVE-2026-96636 allows denial of service (memory exhaustion / OOM) attacks when loading crafted MPO and DCX images with Pillow. Defenders should prioritize verifying and updating Pillow to version 13.0.0 or later.

  • Denial of service (memory exhaustion / OOM) attacks
  • Potential for large memory commitment when loading crafted images
  • Need for verification and updating Pillow to version 13.0.0 or later

Technical summary

Pillow's decompression-bomb protection is bypassed in MpoImageFile.seek() and DcxImageFile.seek() methods, allowing denial of service (memory exhaustion / OOM) attacks. The vulnerability exists due to the lack of re-running the decompression-bomb check in these methods. A crafted MPO or DCX image with a tiny first frame but large later frames can bypass the protection, leading to large memory commitment and potential denial of service attacks. The vulnerability was introduced due to the lack of re-running the decompression-bomb check in these methods.

Defensive priority

Defenders should prioritize verifying and updating Pillow to version 13.0.0 or later, especially in applications handling MPO and DCX images.

Recommended defensive actions

  • Verify and update Pillow to version 13.0.0 or later
  • Review and update applications handling MPO and DCX images
  • Monitor for potential denial of service (memory exhaustion / OOM) attacks
  • Perform vulnerability scanning and patch management for affected systems
  • Implement compensating controls for exposed systems while remediation is scheduled and verified
  • Review relevant monitoring, detection, and logs for exposed assets that need extra review
  • Track exceptions, retest remediated assets, and close the item only after evidence is documented

Evidence notes

The vulnerability exists in Pillow's MpoImageFile.seek() and DcxImageFile.seek() methods, which do not re-run the decompression-bomb check on seek(). This allows a crafted MPO or DCX image with a tiny first frame but large later frames to bypass the protection. The vulnerability was introduced due to the lack of re-running the decompression-bomb check in these methods. Defenders should verify and update Pillow to version 13.0.0 or later and review applications handling MPO and DCX images.

Sources and references

Verified primary and authoritative sources

  • CVE-2026-96636 CVE Program record

    Publisher, destination, and source semantics verified

    URL: https://www.cve.org/CVERecord?id=CVE-2026-96636

    CVE Program - Official CVE Program record with source-provided CVE metadata.

  • CVE-2026-96636 NVD vulnerability detail

    Publisher, destination, and source semantics verified

    URL: https://nvd.nist.gov/vuln/detail/CVE-2026-96636

    NIST National Vulnerability Database - Official NIST NVD detail page and source-specific vulnerability assessment.

Supplemental references

  • Pillow: Decompression-bomb protection bypass via multi-frame seek() in MPO and DCX (MpoImageFile

    Unverified legacy reference

    URL: https://storage.googleapis.com/osv-vulnerabilities/PyPI/GHSA-p8hx-v2p6-rp84.json

    osv_dev

  • Source reference

    Unverified legacy reference

    URL: https://github.com/python-pillow/Pillow/security/advisories/GHSA-p8hx-v2p6-rp84

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/python-pillow/Pillow/pull/10011

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/python-pillow/Pillow/commit/f1acfc54c53502948d0d14121872061df931db48

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/python-pillow/Pillow

    Supplemental source

  • Source reference

    Unverified legacy reference

    URL: https://github.com/python-pillow/Pillow/releases/tag/13.0.0

    Supplemental source

Methodology and review provenance

AI-assisted synthesis based on stored public vulnerability evidence. System validation, approval state, and publication status do not by themselves establish human review of this revision. PatchSiren helps prioritize defensive review and does not prove exposure or remediation on any system.