---
id: CVE-2026-59991
title: psd-tools is a Python package for working with Adobe Photoshop PSD files
summary: >-
  psd-tools is a Python package for working with Adobe Photoshop PSD files.
  Prior to 1.17.4, PSDImage.composite() and PSDImage.numpy() allocated output
  buffers from attacker-controlled PSD header geometry, including width, height,
  channels…
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H'
cwe:
  - CWE-789
vendor: psd-tools
product: psd-tools
affected:
  - psd-tools < 1.17.4
patched:
  - psd-tools 1.17.4
published: '2026-09-22'
updated: '2026-09-23'
sourceUpdated: '2026-09-23T18:12:04.247'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-59991'
references:
  - url: >-
      https://github.com/psd-tools/psd-tools/commit/a3d9a53ad51e667b5772a4f636ca6f2e16f4b271
    label: security-advisories@github.com
  - url: 'https://github.com/psd-tools/psd-tools/releases/tag/v1.17.4'
    label: security-advisories@github.com
  - url: >-
      https://github.com/psd-tools/psd-tools/security/advisories/GHSA-8q6g-vjhf-jp8m
    label: security-advisories@github.com
  - url: >-
      https://github.com/psd-tools/psd-tools/security/advisories/GHSA-8q6g-vjhf-jp8m
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://github.com/advisories/GHSA-8q6g-vjhf-jp8m'
  - url: 'https://github.com/psd-tools/psd-tools'
tags:
  - nvd
  - ghsa
  - pip
  - cve.org
  - exploit-available
  - osv
epss: 0.00517
epssPercentile: 0.41469
aliases:
  - GHSA-8q6g-vjhf-jp8m
ecosystem: pip
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-09-22T19:36:58.263987Z'
ingestedAt: '2026-09-22T20:10:15.093Z'
---

## Overview

psd-tools is a Python package for working with Adobe Photoshop PSD files. Prior to 1.17.4, PSDImage.composite() and PSDImage.numpy() allocated output buffers from attacker-controlled PSD header geometry, including width, height, channels, depth, and per-layer rectangles, before validating those values against the available file data. A tiny crafted PSD could therefore cause multi-gigabyte memory allocation, and PSDImage.composite() could return a black image with only a warning instead of raising an exception. Services that composite untrusted PSD files could be terminated by out-of-memory handling. This issue is fixed in version 1.17.4.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-59991)

Affected packages:

- `psd-tools < 1.17.4`

Patched in:

- `psd-tools 1.17.4`

Source: https://github.com/advisories/GHSA-8q6g-vjhf-jp8m
