<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:webfeeds="http://webfeeds.org/rss/1.0"><channel><title>Cpe:2.3:a:psd-Tools_project:psd-Tools:*:*:*:*:*:python:*:* - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/cpes/cpe2.3apsd-tools_projectpsd-toolspython/</link><description>Trending threats, MITRE ATT&amp;CK coverage, and detection metadata. Fed continuously.</description><generator>Hugo</generator><language>en</language><managingEditor>hello@craftedsignal.io</managingEditor><webMaster>hello@craftedsignal.io</webMaster><lastBuildDate>Tue, 22 Sep 2026 19:53:29 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/cpes/cpe2.3apsd-tools_projectpsd-toolspython/feed.xml" rel="self" type="application/rss+xml"/><image><url>https://feed.craftedsignal.io/favicon-32x32.png</url><title>CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/</link><width>32</width><height>32</height></image><webfeeds:icon>https://feed.craftedsignal.io/favicon.svg</webfeeds:icon><item><title>Denial of Service via Uncontrolled Memory Allocation in psd-tools</title><link>https://feed.craftedsignal.io/briefs/2026-09-psd-tools-memory-dos/</link><pubDate>Tue, 22 Sep 2026 19:53:29 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-09-psd-tools-memory-dos/</guid><description>An improper input validation vulnerability in psd-tools (CVE-2026-59991) allows attackers to trigger massive, unvalidated memory allocations using maliciously crafted PSD files, leading to OOM-kill of the host service.</description><content:encoded><![CDATA[<p>The Python library psd-tools, version 1.17.2 and earlier, is vulnerable to an uncontrolled memory allocation flaw (CVE-2026-59991). When processing a PSD file, the <code>PSDImage.composite()</code> and <code>PSDImage.numpy()</code> functions allocate an output image buffer based on dimensions declared within the PSD file's header before validating these dimensions against the actual file size or reasonable constraints.</p>
<p>An attacker can provide a small, maliciously crafted PSD file, as small as 49 bytes, that declares extremely large width, height, or layer dimensions. This forces the application to commit gigabytes of memory for the buffer, far exceeding the size of the input file. Because the library fails to throw an exception upon detecting mismatched geometry and instead returns a black image, the caller is unable to detect the malicious nature of the file. This vulnerability is critical for web services or backend applications that process untrusted user-supplied images, as it allows for an unrecoverable out-of-memory (OOM) kill of the host process with minimal bandwidth usage.</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in a denial-of-service condition due to host system resource exhaustion. An attacker can crash web servers or background job workers processing image uploads by committing up to 32 GB of memory from a single, sub-100-byte payload. This poses a significant threat to any service or application that allows users to upload PSD files for processing, indexing, or format conversion.</p>
<h2 id="recommendation">Recommendation</h2>
<p>Prioritized actions for engineering and security teams:</p>
<ul>
<li>Upgrade psd-tools to version 1.17.4 or later immediately to include validation logic that mitigates memory over-allocation.</li>
<li>Implement a maximum file size limit and a maximum pixel dimension check for all user-supplied image uploads at the application layer before passing the data to the psd-tools library.</li>
<li>Monitor logs for repeated service restarts or process crashes involving <code>psd-tools</code> to identify potential exploitation attempts.</li>
<li>Use the provided SHA-256 hash (7d8ebf03a54393cb0359ecf4b676d1b08c9a8c6afdd06671ef406d6893cce826) to scan existing file storage for known malicious PoC payloads.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category></item></channel></rss>