CVE-2017-9216
Medium · 6.5CVSS
6.5
EPSS
3.5%
Published
May 24, 2017
CISA due date
—
Cloudanix analysis
A malformed image file can crash programs that read certain document formats, causing temporary outages until the programs are restarted.
- 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 jbig2_huffman_get during JBIG2 Huffman decoding causes segmentation fault when processing a malformed image stream.
Why it matters to the business
Applications that render or convert documents containing JBIG2 images can be forced offline by a single malicious file, interrupting document workflows and requiring restarts or restarts of dependent services.
How an attack unfolds
An attacker crafts a JBIG2 image that triggers the NULL dereference path in jbig2_huffman_get, then delivers the file through any channel that causes the vulnerable library to parse it (e.g., PDF upload, email attachment, or image conversion). The library crashes on first invalid Huffman table access.
How to fix it
Upgrade the jbig2dec component to a version that resolves the NULL dereference (0.14 or later) or replace the affected library entirely. Where fixed_versions indicate the component is absent, verify that no vulnerable jbig2dec binary is present in the runtime image.
How to confirm the fix worked
Run the jbig2dec utility or any consuming application against a known crashing test file and confirm absence of segmentation fault; additionally scan container images for the presence of libjbig2dec.so older than the patched release.
Typical attack path
- Identify application entry points that accept PDF or JBIG2 image input
- Generate or obtain a malformed JBIG2 stream that reaches jbig2_huffman_get with a NULL table pointer
- Upload or transmit the crafted file to the target application
- Observe process termination and service unavailability
How to detect it
Review application and container logs for segmentation fault entries referencing jbig2_huffman.c or jbig2dec immediately after receipt of a PDF or image upload; correlate with file upload timestamps in proxy or application access logs.
What your security team should do
- Confirm whether any deployed image still ships a vulnerable jbig2dec binary
- Block processing of untrusted PDF/JBIG2 content until libraries are updated
- Add the crash signature to application monitoring to detect attempted exploitation
The record
libjbig2dec.a in Artifex jbig2dec 0.13, as used in MuPDF and Ghostscript, has a NULL pointer dereference in the jbig2_huffman_get function in jbig2_huffman.c. For example, the jbig2dec utility will crash (segmentation fault) when parsing an invalid file.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | jbig2dec | 0 | 0.13-5 |
| Debian:12 | jbig2dec | 0 | 0.13-5 |
| Debian:13 | jbig2dec | 0 | 0.13-5 |
| Debian:9 | jbig2dec | 0 | 0.13-4.1+deb9u1 |
| Mageia:5 | ghostscript | 0 | 9.22-1.mga5 |
| Mageia:5 | jbig2dec | 0 | 0.14-1.mga5 |
| Mageia:6 | ghostscript | 0 | 9.22-1.mga6 |
| Mageia:6 | jbig2dec | 0 | 0.14-1.mga6 |
| SUSE:Linux Enterprise Desktop 12 SP2 | ghostscript | 0 | 9.15-23.7.1 |
| SUSE:Linux Enterprise Desktop 12 SP3 | ghostscript | 0 | 9.15-23.7.1 |
| SUSE:Linux Enterprise Server 11 SP4 | ghostscript-library | 0 | 8.62-32.47.7.1 |
| SUSE:Linux Enterprise Server 12 SP2 | ghostscript | 0 | 9.15-23.7.1 |
| SUSE:Linux Enterprise Server 12 SP3 | ghostscript | 0 | 9.15-23.7.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | ghostscript | 0 | 9.15-23.7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | ghostscript-library | 0 | 8.62-32.47.7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | ghostscript | 0 | 9.15-23.7.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP3 | ghostscript | 0 | 9.15-23.7.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | ghostscript-library | 0 | 8.62-32.47.7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | ghostscript | 0 | 9.15-23.7.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP3 | ghostscript | 0 | 9.15-23.7.1 |
| Ubuntu:14.04:LTS | jbig2dec | 0 | No fix |
| Ubuntu:18.04:LTS | jbig2dec | 0 | 0.13-6 |
| Ubuntu:Pro:14.04:LTS | jbig2dec | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | jbig2dec | 0 | 0.12+20150918-1ubuntu0.1+esm2 |
| openSUSE:Tumbleweed | ghostscript | 0 | 9.54.0-2.2 |
Related vulnerabilities
- CVE-2016-9601 ghostscript before version 9.21 is vulnerable to a heap based buffer overflow that was… Also affects jbig2dec
- CVE-2016-7976 The PS Interpreter in Ghostscript 9.18 and 9.20 allows remote attackers to execute… Also affects ghostscript
- CVE-2017-11714 psi/ztoken.c in Artifex Ghostscript 9.21 mishandles references to the scanner state… Also affects ghostscript
- CVE-2017-8291 Artifex Ghostscript through 2017-04-26 allows -dSAFER bypass and remote command execution… Also affects ghostscript
- CVE-2016-10317 The fill_threshhold_buffer function in base/gxht_thresh.c in Artifex Software, Inc. Also affects ghostscript
- CVE-2016-10217 The pdf14_open function in base/gdevp14.c in Artifex Software, Inc. Also affects ghostscript
- CVE-2015-3228 Integer overflow in the gs_heap_alloc_bytes function in base/gsmalloc.c in Ghostscript… Also affects ghostscript
- CVE-2013-5653 The getenv and filenameforall functions in Ghostscript 9.10 ignore the "-dSAFER"… Also affects ghostscript