Skip to main content
← All vulnerabilities
CVE-2026-49836PYSEC-2026-2969GHSA-2RMG-VRX8-9J2F

psd-tools: arbitrary file write via smart-object filename

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 1.17.1
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: poc
  • Automatable: no
  • Technical impact: partial

Summary

psd-tools is a Python package for working with Adobe Photoshop PSD files. Prior to version 1.17.1, `SmartObject.save()` writes an embedded smart object to a path taken verbatim from the PSD file. Because that name is attacker-controlled and unsanitised, a tool that extracts embedded objects from an untrusted `.psd` can be made to write attacker-chosen bytes to an attacker-chosen path (absolute or `../`-traversing), outside its intended output directory. A secondary issue in `SmartObject.open()` for external-kind smart objects allows the attacker-controlled `fullPath` descriptor to be used as an arbitrary file read path, enabling exfiltration of the read content to the controlled write destination. Both issues are fixed in v1.17.1.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: poc · Automatable: no · Technical impact: partial

  3. Record last updated

Affected versions

  • psd-tools psd-tools

    fixed in 1.17.1

  • psd-toolsPyPI

    fixed in 1.17.1

References 4

GitHub · psd-tools/psd-tools

GitHub · pypa/advisory-database