<?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>Lopdf (&lt; 0.42.0) - CraftedSignal Threat Feed</title><link>https://feed.craftedsignal.io/products/lopdf--0.42.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>Fri, 16 Oct 2026 22:28:51 +0000</lastBuildDate><atom:link href="https://feed.craftedsignal.io/products/lopdf--0.42.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>Stack Exhaustion Vulnerability in lopdf Rust Library</title><link>https://feed.craftedsignal.io/briefs/2026-10-lopdf-stack-overflow/</link><pubDate>Fri, 16 Oct 2026 22:28:51 +0000</pubDate><author>hello@craftedsignal.io</author><guid isPermaLink="true">https://feed.craftedsignal.io/briefs/2026-10-lopdf-stack-overflow/</guid><description>The lopdf Rust library is vulnerable to stack exhaustion via unbounded recursion when parsing deeply nested PDF objects, allowing unauthenticated attackers to cause a denial-of-service via SIGABRT.</description><content:encoded><![CDATA[<p>The Rust library <code>lopdf</code> (versions prior to 0.42.0) contains a vulnerability in its document parsing logic within <code>lopdf::Document::load_mem</code> and related entry points. The parser recursively processes nested PDF arrays and dictionaries without implementing a depth limit. By supplying a specially crafted PDF file containing approximately 10,000 levels of nested objects (e.g., <code>[[[[...]]]]</code>), an attacker can trigger a stack overflow that results in a process-terminating <code>SIGABRT</code>.</p>
<p>Because this termination occurs as a non-recoverable abort rather than a standard Rust <code>panic!</code>, the crash cannot be intercepted by <code>catch_unwind</code> handlers. Any service that uses <code>lopdf</code> to process untrusted or user-supplied PDF input is susceptible to this denial-of-service (DoS) attack. The attack requires only a small file (approximately 21 KB) to crash the target application. This issue highlights the danger of unbounded recursion when handling complex file formats.</p>
<h2 id="impact">Impact</h2>
<p>Successful exploitation results in a denial-of-service condition for the affected application or service. Any system utilizing <code>lopdf</code> to ingest user-uploaded files, process PDF documents from email attachments, or handle API-based PDF generation is at risk. Given that the crash is an unrecoverable <code>SIGABRT</code>, affected services will experience complete process interruption until restarted, potentially leading to significant downtime in environments that rely on automated PDF processing.</p>
<h2 id="recommendation">Recommendation</h2>
<ol>
<li>Update the <code>lopdf</code> dependency to version 0.42.0 or later, which implements a maximum object-nesting depth to prevent unbounded recursion.</li>
<li>Implement input validation at the application level to reject or pre-scan PDF files for excessive nesting depth before passing them to the <code>lopdf</code> parsing functions.</li>
<li>Where possible, run PDF parsing logic in a sandboxed or isolated process with resource limits to minimize the impact of crashes on core service infrastructure.</li>
</ol>
]]></content:encoded><category domain="severity">high</category><category domain="type">advisory</category></item></channel></rss>