{"id":"CVE-2026-49836","summary":"psd-tools: arbitrary file write via smart-object filename","details":"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.","aliases":["GHSA-2rmg-vrx8-9j2f","PYSEC-2026-2969"],"modified":"2026-09-18T03:46:53.733809963Z","published":"2026-09-10T21:47:57.822Z","database_specific":{"cna_assigner":"GitHub_M","cwe_ids":["CWE-22","CWE-73"],"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/49xxx/CVE-2026-49836.json"},"references":[{"type":"WEB","url":"http://github.com/psd-tools/psd-tools/releases/tag/v1.17.1"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/49xxx/CVE-2026-49836.json"},{"type":"ADVISORY","url":"https://github.com/psd-tools/psd-tools/security/advisories/GHSA-2rmg-vrx8-9j2f"},{"type":"ADVISORY","url":"https://github.com/pypa/advisory-database/tree/main/vulns/psd-tools/PYSEC-2026-2969.yaml"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-49836"},{"type":"FIX","url":"https://github.com/psd-tools/psd-tools/pull/657"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://github.com/psd-tools/psd-tools","events":[{"introduced":"0"},{"fixed":"634aaf4bd6fd70e94cbe325b22b88211d38c690d"}],"database_specific":{"extracted_events":[{"introduced":"0"},{"fixed":"1.17.1"}],"source":["AFFECTED_FIELD","REFERENCES"]}}],"versions":["v1.17.0","v1.16.0","v1.15.0.post1","v1.15.0","v1.14.3","v1.14.2","v1.14.1","v1.14.0","v1.13.1","v1.12.1","v1.12.0","v1.11.1","v1.11.0","v1.10.13","v1.10.12","v1.10.11","v1.10.10","v1.10.9","v1.10.8","v1.10.7","v1.10.6","v1.10.5","v1.10.4","v1.10.3","v1.10.2","v1.10.1","v1.10.0","v1.9.34","v1.9.33","v1.9.32","v1.9.31","v1.9.30","v1.9.29","v1.9.28","v1.9.27","v1.9.26","v1.9.25","v1.9.24","v1.9.23","v1.9.22","v1.9.21","v1.9.20","v1.9.19","v1.9.18","v1.9.17","v1.9.16","v1.9.15","v1.9.14","v1.9.13","v1.9.12","v1.9.11","v1.9.10","v1.9.9","v1.9.8","v1.9.7","v1.9.6","v1.9.5","v1.9.4","v1.9.3","v1.9.2","v1.9.1","v.1.9.0","v1.8.38","v1.8.37.post3","v1.8.37.post2","v1.8.37.post1","v1.8.36","v1.8.35","v1.8.34","v1.8.33","v1.8.32","v1.8.31","v1.8.30","v1.8.29","v1.8.28","v1.8.27","v1.8.26","1.8.26","1.8.25","1.8.21","1.8.17","1.8.14","1.8.12","1.8.11","1.8.10","1.8.9","1.8.8","1.4","1.3","1.2","1.1","1.0","0.10","0.9.1","0.9","0.8.4","0.8.3","0.8.2","0.8.1","0.8","0.7.1","0.7","0.6","0.5","0.2","0.1.4","0.1.3","0.1.2","0.1.1","0.1"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-49836.json"}}],"schema_version":"1.9.0","severity":[{"type":"CVSS_V4","score":"CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N"}]}