CVE-2023-3436
Low · 3.3CVSS
3.3
EPSS
0.2%
Published
Jun 27, 2023
CISA due date
—
Cloudanix analysis
A PDF reader can freeze when it tries to open certain specially crafted documents.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Application
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Deadlock during PDF parsing when an object stream's Length field resides inside another object stream, causing the parser to wait indefinitely for resolution.
Why it matters to the business
PDF viewing or processing workflows using the affected reader may hang, interrupting document access with minimal other operational effects.
How an attack unfolds
An attacker creates a PDF containing nested object streams where the Length field is deferred, then delivers the file to a target who opens it in the vulnerable reader, triggering the deadlock condition.
How to fix it
Upgrade to a patched version of Xpdf once released; in the interim, avoid opening untrusted PDF files with Xpdf and consider alternative readers.
How to confirm the fix worked
Test the reader against a sample PDF containing a deferred Length field in an object stream and confirm the process no longer deadlocks; verify the installed version against future fixed releases.
Typical attack path
- Craft a PDF with a Length field located inside a secondary object stream
- Deliver the malicious PDF via email, web download, or shared storage
- Victim opens the file using the affected Xpdf version
- Parser enters deadlock state and the application becomes unresponsive
How to detect it
Review system process lists and logs for Xpdf instances that remain in a running but unresponsive state after PDF file access; correlate with file-open events for recently received PDFs.
What your security team should do
- Monitor upstream Xpdf releases for a fix and schedule prompt upgrades
- Configure application allow-listing or sandboxing for PDF handling
- Educate users to treat unexpected PDFs with caution
The record
Xpdf 4.04 will deadlock on a PDF object stream whose "Length" field is itself in another object stream.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Mageia:9 | xpdf | 0 | 4.05-1.mga9 |
| Ubuntu:16.04:LTS | ipe | 0 | No fix |
| Ubuntu:16.04:LTS | xpdf | 0 | No fix |
| Ubuntu:18.04:LTS | ipe | 0 | No fix |
| Ubuntu:18.04:LTS | xpdf | 0 | No fix |
| Ubuntu:20.04:LTS | ipe | 0 | No fix |
| Ubuntu:22.04:LTS | ipe | 0 | No fix |
| Ubuntu:22.04:LTS | xpdf | 0 | No fix |
| Ubuntu:24.04:LTS | ipe | 0 | No fix |
| Ubuntu:24.04:LTS | xpdf | 0 | No fix |
| Ubuntu:24.10 | ipe | 0 | No fix |
| Ubuntu:24.10 | xpdf | 0 | No fix |
| Ubuntu:25.04 | ipe | 0 | No fix |
| Ubuntu:25.04 | xpdf | 0 | No fix |
| Ubuntu:25.10 | ipe | 0 | No fix |
| Ubuntu:25.10 | xpdf | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | ipe | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | xpdf | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | ipe | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | xpdf | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | ipe | 0 | No fix |
Related vulnerabilities
- CVE-2023-3044 An excessively large PDF page size (found in fuzz testing, unlikely in normal PDF files)… Also affects xpdf
- CVE-2023-2664 In Xpdf 4.04 (and earlier), a PDF object loop in the embedded file tree leads to infinite… Also affects xpdf
- CVE-2023-2663 In Xpdf 4.04 (and earlier), a PDF object loop in the page label tree leads to infinite… Also affects xpdf
- CVE-2023-2662 In Xpdf 4.04 (and earlier), a bad color space object in the input PDF file can cause a… Also affects xpdf
- CVE-2022-45587 Stack overflow vulnerability in function gmalloc in goo/gmem.cc in xpdf 4.04, allows… Also affects xpdf
- CVE-2022-45586 Stack overflow vulnerability in function Dict::find in xpdf/Dict.cc in xpdf 4.04, allows… Also affects xpdf
- CVE-2022-43071 A stack overflow in the Catalog::readPageLabelTree2(Object*) function of XPDF v4.04… Also affects xpdf
- CVE-2022-43295 XPDF v4.04 was discovered to contain a stack overflow via the function FileStream::copy()… Also affects xpdf