CVE-2026-49836
Received Received - Intake

Path Traversal and Arbitrary File Read in psd-tools

Vulnerability report for CVE-2026-49836, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-10

Last updated on: 2026-09-10

Assigner: GitHub, Inc.

Description

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-10
Last Modified
2026-09-10
Generated
2026-09-11
AI Q&A
2026-09-11
EPSS Evaluated
N/A
NVD

Affected Vendors & Products

Currently, no data is known.

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-22 The product uses external input to construct a pathname that is intended to identify a file or directory that is located underneath a restricted parent directory, but the product does not properly neutralize special elements within the pathname that can cause the pathname to resolve to a location that is outside of the restricted directory.
CWE-73 The product allows user input to control or influence paths or file names that are used in filesystem operations.

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability affects the psd-tools Python package, which handles Adobe Photoshop PSD files. Before version 1.17.1, the SmartObject.save() function writes embedded smart objects to a path directly from the PSD file without sanitizing it. This allows attackers to write arbitrary files to any location on the system, including paths that traverse outside the intended directory using ../ sequences. Additionally, SmartObject.open() for external smart objects can read arbitrary files using a controlled path, enabling data exfiltration to the attacker's chosen write destination.

Both issues are fixed in version 1.17.1.

Detection Guidance

To detect this vulnerability, check if your system uses psd-tools versions prior to 1.17.1. Run: pip show psd-tools. If installed, verify the version. Also inspect any scripts or applications that process PSD files for unsafe file path handling in SmartObject.save() or SmartObject.open().

Impact Analysis

If you use psd-tools to process untrusted PSD files, an attacker could exploit this to overwrite critical system files, install malware, or modify files in sensitive directories. They could also steal sensitive data by reading arbitrary files on your system and sending them to a location they control.

Compliance Impact

This vulnerability could lead to unauthorized data access or modification, violating GDPR's data protection principles or HIPAA's requirements for safeguarding protected health information. If exploited, it may result in data breaches, unauthorized disclosure, or integrity violations, potentially leading to legal penalties or compliance failures.

Mitigation Strategies

Update psd-tools to version 1.17.1 or later to address the vulnerability in SmartObject.save() and SmartObject.open(). Avoid processing untrusted PSD files until the update is applied.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-49836. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart