{"description":"Trending threats, MITRE ATT\u0026CK coverage, and detection metadata. Fed continuously.","favicon":"https://feed.craftedsignal.io/favicon-32x32.png","feed_url":"https://feed.craftedsignal.io/products/lopdf--0.42.0/feed.json","home_page_url":"https://feed.craftedsignal.io/","icon":"https://feed.craftedsignal.io/apple-touch-icon.png","items":[{"_cs_actors":[],"_cs_cpes":[],"_cs_cves":[],"_cs_exploited":false,"_cs_has_poc":false,"_cs_poc_references":[],"_cs_products":["lopdf (\u003c 0.42.0)"],"_cs_severities":["high"],"_cs_tags":[],"_cs_type":"advisory","_cs_vendors":[],"content_html":"\u003cp\u003eThe Rust library \u003ccode\u003elopdf\u003c/code\u003e (versions prior to 0.42.0) contains a vulnerability in its document parsing logic within \u003ccode\u003elopdf::Document::load_mem\u003c/code\u003e 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., \u003ccode\u003e[[[[...]]]]\u003c/code\u003e), an attacker can trigger a stack overflow that results in a process-terminating \u003ccode\u003eSIGABRT\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eBecause this termination occurs as a non-recoverable abort rather than a standard Rust \u003ccode\u003epanic!\u003c/code\u003e, the crash cannot be intercepted by \u003ccode\u003ecatch_unwind\u003c/code\u003e handlers. Any service that uses \u003ccode\u003elopdf\u003c/code\u003e 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.\u003c/p\u003e\n\u003ch2 id=\"impact\"\u003eImpact\u003c/h2\u003e\n\u003cp\u003eSuccessful exploitation results in a denial-of-service condition for the affected application or service. Any system utilizing \u003ccode\u003elopdf\u003c/code\u003e 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 \u003ccode\u003eSIGABRT\u003c/code\u003e, affected services will experience complete process interruption until restarted, potentially leading to significant downtime in environments that rely on automated PDF processing.\u003c/p\u003e\n\u003ch2 id=\"recommendation\"\u003eRecommendation\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003eUpdate the \u003ccode\u003elopdf\u003c/code\u003e dependency to version 0.42.0 or later, which implements a maximum object-nesting depth to prevent unbounded recursion.\u003c/li\u003e\n\u003cli\u003eImplement input validation at the application level to reject or pre-scan PDF files for excessive nesting depth before passing them to the \u003ccode\u003elopdf\u003c/code\u003e parsing functions.\u003c/li\u003e\n\u003cli\u003eWhere possible, run PDF parsing logic in a sandboxed or isolated process with resource limits to minimize the impact of crashes on core service infrastructure.\u003c/li\u003e\n\u003c/ol\u003e\n","date_modified":"2026-10-16T22:28:51Z","date_published":"2026-10-16T22:28:51Z","id":"https://feed.craftedsignal.io/briefs/2026-10-lopdf-stack-overflow/","summary":"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.","title":"Stack Exhaustion Vulnerability in lopdf Rust Library","url":"https://feed.craftedsignal.io/briefs/2026-10-lopdf-stack-overflow/"}],"language":"en","title":"CraftedSignal Threat Feed - Lopdf (\u003c 0.42.0)","version":"https://jsonfeed.org/version/1.1"}