CVE-2017-15565
High · 8.8CVSS
8.8
EPSS
2.1%
Published
Oct 17, 2017
CISA due date
—
Cloudanix analysis
Opening a specially made PDF file can let an attacker take over a computer that uses an old version of a common browser or document viewer.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
NULL pointer dereference in GfxImageColorMap::getGrayLine() during processing of crafted PDF documents leads to memory corruption that can result in denial of service or arbitrary code execution.
Why it matters to the business
Attackers can compromise systems that render untrusted PDFs, potentially leading to full system takeover, data theft, or ransomware deployment on outdated browsers and PDF viewers.
How an attack unfolds
An attacker crafts a malicious PDF that triggers the vulnerable code path in Poppler's GfxState.cc; when a victim opens the document in an affected application such as Firefox, the null dereference occurs and can be leveraged for code execution. Public exploits exist and the issue has been known since 2017.
How to fix it
Upgrade Firefox on Ubuntu 14.04 LTS to version 57.0+build4-0ubuntu0.14.04.4 or later. For any other Poppler-based applications, update to a build containing the fix for CVE-2017-15565. Disable PDF rendering plugins where feasible until patches are applied.
How to confirm the fix worked
Verify installed Firefox version matches or exceeds the fixed package; reprocess known-good and known-bad test PDFs in a sandboxed environment and confirm absence of crashes or unexpected memory access in GfxState.cc.
Typical attack path
- Create a crafted PDF that reaches GfxImageColorMap::getGrayLine with invalid color map data
- Host or deliver the PDF via email attachment, web download, or drive-by link
- Victim opens the PDF in an affected Firefox or Poppler-based viewer
- Trigger the null dereference and use memory corruption primitives for code execution
- Establish persistence or exfiltrate data
How to detect it
Inspect browser and PDF viewer crash logs for faults originating in GfxState.cc or GfxImageColorMap; correlate with inbound PDF files from untrusted sources and look for post-crash process behavior indicative of exploitation.
- GfxImageColorMap::getGrayLine
- GfxState.cc
- poppler null dereference crash signature
What your security team should do
- Immediately deploy the listed Firefox update across all Ubuntu 14.04 systems
- Block or sandbox PDF handling from untrusted sources until patching is complete
- Monitor for exploitation attempts using available public proof-of-concept code
- Review and retire legacy PDF rendering libraries that depend on the vulnerable Poppler version
The record
In Poppler 0.59.0, a NULL Pointer Dereference exists in the GfxImageColorMap::getGrayLine() function in GfxState.cc via a crafted PDF document.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | poppler | 0 | 0.61.1-2 |
| Debian:12 | poppler | 0 | 0.61.1-2 |
| Debian:13 | poppler | 0 | 0.61.1-2 |
| Debian:7 | poppler | 0 | 0.18.4-6+deb7u4 |
| Debian:8 | poppler | 0 | 0.26.5-2+deb8u2 |
| Debian:9 | poppler | 0 | 0.48.0-2+deb9u1 |
| Mageia:5 | poppler | 0 | 0.26.5-2.7.mga5 |
| Mageia:6 | poppler | 0 | 0.52.0-3.5.mga6 |
| SUSE:Linux Enterprise Desktop 12 SP3 | poppler | 0 | 0.43.0-16.15.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | poppler-qt | 0 | 0.43.0-16.15.1 |
| SUSE:Linux Enterprise Server 11 SP4 | poppler | 0 | 0.12.3-1.13.3.2 |
| SUSE:Linux Enterprise Server 12 SP3 | poppler | 0 | 0.43.0-16.15.1 |
| SUSE:Linux Enterprise Server 12 SP3 | poppler-qt | 0 | 0.43.0-16.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | poppler | 0 | 0.12.3-1.13.3.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | poppler | 0 | 0.43.0-16.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | poppler-qt | 0 | 0.43.0-16.15.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | poppler | 0 | 0.12.3-1.13.3.2 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | poppler | 0 | 0.43.0-16.15.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | poppler-qt | 0 | 0.43.0-16.15.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP4 | poppler | 0 | 0.24.4-14.16.6 |
| SUSE:Linux Enterprise Software Development Kit 12 SP5 | poppler | 0 | 0.24.4-14.16.6 |
| Ubuntu:14.04:LTS | poppler | 0 | 0.24.5-2ubuntu4.8 |
| Ubuntu:16.04:LTS | poppler | 0 | 0.41.0-0ubuntu1.5 |
Related vulnerabilities
- CVE-2024-56378 libpoppler.so in Poppler through 24.12.0 has an out-of-bounds read vulnerability within… Also affects poppler
- 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-2017-2820 An exploitable integer overflow vulnerability exists in the JPEG 2000 image parsing… Also affects poppler
- CVE-2017-9865 The function GfxImageColorMap::getGray in GfxState.cc in Poppler 0.54.0 allows remote… 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