<?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>Pillow (&gt;= 5.1.0, &lt; 13.0.0) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/pillow--5.1.0--13.0.0/</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, 20 Oct 2026 23:53:38 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/pillow--5.1.0--13.0.0/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>Pillow: PDF unbounded recursion in page tree and trailer parsing (CVE-2026-112895)</title><link>https://feed.craftedsignal.io/briefs/2026-10-pillow-pdf-recursion/</link><pubDate>Tue, 20 Oct 2026 23:53:38 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-10-pillow-pdf-recursion/</guid><description>Pillow is vulnerable to denial of service through unbounded recursion when parsing malformed PDF files using Image.save with append=True due to insufficient depth checks in page tree and trailer chain traversals.</description><content:encoded><![CDATA[<p>Pillow, a popular Python imaging library, contains vulnerabilities that allow an attacker to trigger unbounded recursion during the parsing of malformed PDF files. When an application utilizes <code>Image.save</code> with <code>append=True</code>, the library invokes <code>PdfParser</code> to process the existing PDF structure. Two specific areas of the parser lack necessary bounds: <code>linearize_page_tree</code> follows <code>/Kids</code> entries without tracking visited nodes or enforcing a depth limit, and <code>read_prev_trailer</code> permits long chains of unique <code>/Prev</code> offsets.</p>
<p>These vulnerabilities serve as an incomplete fix for CVE-2026-42310. An attacker can craft malicious PDF files containing cyclic page trees or extensively deep <code>/Prev</code> chains to drive the parsing process into high CPU and memory utilization, leading to application crashes or denial of service. The vulnerability affects all Pillow versions from 5.1.0 up to, but not including, 13.0.0. Defenders should note this impacts any service that processes user-supplied PDFs for operations such as stamping, watermarking, or merging.</p>
<h2 id="impact">Impact</h2>
<p>A successful exploit causes denial of service by exhausting stack space, CPU, and memory resources. Any service performing automated processing of user-provided PDFs - common in document management, e-signature, or image processing pipelines - is susceptible. The impact is significant for services where availability is critical and where the processing component shares memory or CPU resources with other application functions.</p>
<h2 id="recommendation">Recommendation</h2>
<ul>
<li>Upgrade the Pillow library to version 13.0.0 or later immediately to address CVE-2026-112895.</li>
<li>Audit application code to identify endpoints that invoke <code>Image.save(..., format=&quot;PDF&quot;, append=True)</code> on untrusted user input.</li>
<li>Implement input validation or limit file sizes and complexity for incoming PDF documents before passing them to the Pillow library.</li>
<li>If upgrading is not immediately possible, implement a file-parsing timeout for any process handling PDF manipulation to mitigate the impact of CPU and memory exhaustion.</li>
</ul>
]]></content:encoded><category domain="severity">medium</category><category domain="type">advisory</category><category>denial-of-service</category><category>python</category><category>library-vulnerability</category></item></channel></rss>