CVE-2026-59991: psd-tools composite/numpy has uncontrolled memory allocation via crafted PSD geometry
PSDImage.composite() (and .numpy()) allocate the output image buffer from the PSD’s header geometry (width × height × channels × depth, and per-layer rectangles) before validating those values against the actual file contents. A tiny crafted PSD declaring huge dimensions causes a multi-gigabyte allocation. Critically, composite() then returns a (black) image with only a warning, no exception is raised, so a caller cannot detect or guard against it.
References
Code Behaviors & Features
Detect and mitigate CVE-2026-59991 with GitLab Dependency Scanning
Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Learn more about Dependency Scanning →