{"id":"CVE-2026-27809","aliases":["GHSA-24p2-j2jr-386w","PYSEC-2026-2262"],"url":"https://o3.security/vulnerability/CVE-2026-27809","summary":"psd-tools: Compression module has unguarded zlib decompression, missing dimension validation, and hardening gaps","details":"psd-tools is a Python package for working with Adobe Photoshop PSD files. Prior to version 1.12.2, when a PSD file contains malformed RLE-compressed image data (e.g. a literal run that extends past the expected row size), decode_rle() raises ValueError which propagated all the way to the user, crashing psd.composite() and psd-tools export. decompress() already had a fallback that replaces failed channels with black pixels when result is None, but it never triggered because the ValueError from decode_rle() was not caught. The fix in version 1.12.2 wraps the decode_rle() call in a try/except so the existing fallback handles the error gracefully.","published":"2026-02-25T23:57:00.760Z","modified":"2026-09-18T03:46:21.459798987Z","cvss":null,"epss":{"score":0.0041,"percentile":0.33759,"asOf":"2026-08-24"},"cisaKev":null,"exploitsKnown":0,"affectedPackages":[{"ecosystem":"PyPI","name":"psd-tools","fixedVersion":"1.12.2"}],"fix":{"url":"https://github.com/psd-tools/psd-tools/commit/6c0a78f195b5942757886a1863793fd5946c1fb1","label":"psd-tools/psd-tools@6c0a78f"},"references":[{"type":"WEB","url":"https://github.com/psd-tools/psd-tools/releases/tag/v1.12.2"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/27xxx/CVE-2026-27809.json"},{"type":"ADVISORY","url":"https://github.com/psd-tools/psd-tools/security/advisories/GHSA-24p2-j2jr-386w"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-27809"},{"type":"FIX","url":"https://github.com/psd-tools/psd-tools/commit/6c0a78f195b5942757886a1863793fd5946c1fb1"}],"provenance":{"sources":["OSV.dev","FIRST.org (EPSS)"],"lastVerified":"2026-09-18T03:46:21.459798987Z"}}