CVE-2017-2820
High · 8.8CVSS
8.8
EPSS
4.4%
Published
Jul 12, 2017
CISA due date
—
Cloudanix analysis
A bug in software that reads PDF files could let an attacker take over a computer when someone opens a specially made document.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Integer overflow during JPEG 2000 image parsing in Poppler leads to out-of-bounds heap memory overwrite, enabling arbitrary code execution.
Why it matters to the business
Attackers can achieve remote code execution on systems that render untrusted PDFs, creating risk of malware deployment or data theft; the issue affects any application using the vulnerable library and has been public for years with working exploits available.
How an attack unfolds
An attacker creates a PDF embedding a malformed JPEG 2000 image that triggers the integer overflow on parse; the victim opens the document in any application linked against the vulnerable Poppler version, causing the heap overwrite and potential shellcode execution.
How to fix it
Upgrade the affected Poppler library or any package that vendors it to a version containing the fix; for the listed package, update prometheus-redis-exporter-fips-1.44 to 1.44.0-r7 or later. Disable PDF rendering of untrusted files until patches are applied.
How to confirm the fix worked
Verify the installed Poppler version is newer than 0.53.0 or confirm the exact fixed package version is deployed; test rendering of known-good and known-malicious sample PDFs in a controlled environment to confirm absence of the overflow condition.
Typical attack path
- Craft a PDF containing a JPEG 2000 stream that triggers integer overflow on parse
- Host or deliver the malicious PDF via email, web download, or document repository
- Victim opens the PDF in an application that uses the vulnerable Poppler library
- Library parsing performs out-of-bounds write leading to code execution
How to detect it
Review application or library logs for crashes or errors during PDF or JPEG 2000 parsing; inspect file-creation and process-spawn events immediately after PDF viewers are launched; search endpoint telemetry for unexpected child processes spawned from PDF-rendering binaries.
What your security team should do
- Apply the listed fixed package version immediately on all systems using the vulnerable library
- Inventory applications that depend on Poppler and prioritize patching those handling external PDFs
- Block or sandbox untrusted PDF files at email gateways and web proxies until remediation is complete
- Monitor for new public exploits given the ExploitAvailable maturity and long disclosure window
The record
An exploitable integer overflow vulnerability exists in the JPEG 2000 image parsing functionality of freedesktop.org Poppler 0.53.0. A specially crafted PDF file can lead to an integer overflow causing out of bounds memory overwrite on the heap resulting in potential arbitrary code execution. To trigger this vulnerability, a victim must open the malicious PDF in an application using this library.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:10 | poppler | 0 | No fix |
| Debian:11 | poppler | 0 | No fix |
| Debian:12 | poppler | 0 | No fix |
| Debian:13 | poppler | 0 | No fix |
| Ubuntu:14.04:LTS | poppler | 0 | 0.24.5-2ubuntu4.5 |
| Ubuntu:16.04:LTS | poppler | 0 | 0.41.0-0ubuntu1.2 |
Related vulnerabilities
- CVE-2017-14518 In Poppler 0.59.0, a floating point exception exists in the… Also affects poppler
- CVE-2017-14517 In Poppler 0.59.0, a NULL Pointer Dereference exists in the XRef::parseEntry() function… Also affects poppler
- CVE-2013-4474 Format string vulnerability in the extractPages function in utils/pdfseparate.cc in… Also affects poppler
- CVE-2013-4473 Stack-based buffer overflow in the extractPages function in utils/pdfseparate.cc in… Also affects poppler
- CVE-2009-3608 Integer overflow in the ObjectStream::ObjectStream function in XRef.cc in Xpdf 3.x before… Also affects poppler
- CVE-2009-0755 The FormWidgetChoice::loadDefaults function in Poppler before 0.10.4 allows remote… Also affects poppler
- CVE-2009-0756 The JBIG2Stream::readSymbolDictSeg function in Poppler before 0.10.4 allows remote… Also affects poppler
- CVE-2008-2950 The Page destructor in Page.cc in libpoppler in Poppler 0.8.4 and earlier deletes a… Also affects poppler