CVE-2015-5203
Medium · 5.5CVSS
5.5
EPSS
1.9%
Published
Aug 2, 2017
CISA due date
—
Cloudanix analysis
A bug in an image library can make programs crash when they open certain picture files, interrupting work that relies on those programs.
- 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
Double-free in jasper_image_stop_load during JPEG 2000 image processing leads to memory corruption and immediate process crash.
Why it matters to the business
Applications that decode untrusted JPEG 2000 images can be forced to terminate, causing service interruptions and potential loss of image-handling workflows across Linux distributions that ship the vulnerable library.
How an attack unfolds
An attacker supplies a specially crafted JPEG 2000 file that reaches the vulnerable cleanup path twice when the image is loaded; the resulting double-free corrupts heap metadata and crashes the process. No remote code execution has been observed.
How to fix it
Upgrade JasPer to a version containing the fix for the double-free (post-1.900.17 releases or distribution backports). Where an upgrade is not immediately possible, disable JPEG 2000 support or sandbox image-processing components.
How to confirm the fix worked
Confirm the installed JasPer version is newer than 1.900.17 and test that the crafted JPEG 2000 sample no longer crashes the application. Re-run regression tests that exercise JPEG 2000 decode paths.
Typical attack path
- Attacker crafts a JPEG 2000 file that triggers the double-free condition in jasper_image_stop_load
- Victim application or library opens the file (local file, email attachment, or web download)
- Library processes the image and hits the flawed cleanup routine twice
- Process crashes, resulting in denial of service
How to detect it
Review application and system logs for segmentation faults or abrupt terminations in processes linked to libjasper when JPEG 2000 files are processed. Correlate crash timestamps with file-access events involving .jp2 files.
What your security team should do
- Inventory all systems and packages that depend on JasPer and schedule upgrades
- Apply vendor patches or rebuild from fixed source as soon as packages become available
- Restrict processing of untrusted JPEG 2000 images until patches are deployed
- Monitor for application crashes in image-handling services as a temporary detection signal
The record
Double free vulnerability in the jasper_image_stop_load function in JasPer 1.900.17 allows remote attackers to cause a denial of service (crash) via a crafted JPEG 2000 image file.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:8 | jasper | 0 | 1.900.1-debian1-2.4+deb8u4 |
| Mageia:5 | jasper | 0 | 1.900.1-20.5.mga5 |
| Red Hat:enterprise_linux:6::client | jasper | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::client | jasper-debuginfo | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::client | jasper-devel | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::client | jasper-libs | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::client | jasper-utils | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::computenode | jasper | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::computenode | jasper-debuginfo | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::computenode | jasper-devel | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::computenode | jasper-libs | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::computenode | jasper-utils | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::server | jasper | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::server | jasper-debuginfo | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::server | jasper-devel | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::server | jasper-libs | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::server | jasper-utils | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::workstation | jasper | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::workstation | jasper-debuginfo | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::workstation | jasper-devel | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::workstation | jasper-libs | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:6::workstation | jasper-utils | 0 | 0:1.900.1-21.el6_9 |
| Red Hat:enterprise_linux:7::client | jasper | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::client | jasper-debuginfo | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::client | jasper-devel | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::client | jasper-libs | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::client | jasper-utils | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::computenode | jasper | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::computenode | jasper-debuginfo | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::computenode | jasper-devel | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::computenode | jasper-libs | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::computenode | jasper-utils | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::server | jasper | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::server | jasper-debuginfo | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::server | jasper-devel | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::server | jasper-libs | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::server | jasper-utils | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::workstation | jasper | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::workstation | jasper-debuginfo | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::workstation | jasper-devel | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::workstation | jasper-libs | 0 | 0:1.900.1-30.el7_3 |
| Red Hat:enterprise_linux:7::workstation | jasper-utils | 0 | 0:1.900.1-30.el7_3 |
| SUSE:Linux Enterprise Desktop 12 SP1 | jasper | 0 | 1.900.14-181.1 |
| SUSE:Linux Enterprise Desktop 12 SP2 | jasper | 0 | 1.900.14-181.1 |
| SUSE:Linux Enterprise Server 11 SP4 | jasper | 0 | 1.900.14-134.25.1 |
| SUSE:Linux Enterprise Server 12 SP1 | jasper | 0 | 1.900.14-181.1 |
| SUSE:Linux Enterprise Server 12 SP2 | jasper | 0 | 1.900.14-181.1 |
| SUSE:Linux Enterprise Server for Raspberry Pi 12 SP2 | jasper | 0 | 1.900.14-181.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | jasper | 0 | 1.900.14-134.25.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | jasper | 0 | 1.900.14-181.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP2 | jasper | 0 | 1.900.14-181.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | jasper | 0 | 1.900.14-134.25.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | jasper | 0 | 1.900.14-181.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP2 | jasper | 0 | 1.900.14-181.1 |
| Ubuntu:14.04:LTS | jasper | 0 | 1.900.1-14ubuntu3.5 |
| Ubuntu:16.04:LTS | jasper | 0 | 1.900.1-debian1-2.4ubuntu1.2 |
| openSUSE:Tumbleweed | jasper | 0 | 1.900.14-3.1 |
Related vulnerabilities
- CVE-2016-10249 Integer overflow in the jpc_dec_tiledecode function in jpc_dec.c in JasPer before… Also affects jasper
- CVE-2016-1577 Double free vulnerability in the jas_iccattrval_destroy function in JasPer 1.900.1 and… Also affects jasper
- CVE-2014-8158 Multiple stack-based buffer overflows in jpc_qmfb.c in JasPer 1.900.1 and earlier allow… Also affects jasper
- CVE-2014-8157 Off-by-one error in the jpc_dec_process_sot function in JasPer 1.900.1 and earlier allows… Also affects jasper
- CVE-2014-8138 Heap-based buffer overflow in the jp2_decode function in JasPer 1.900.1 and earlier… Also affects jasper
- CVE-2014-8137 Double free vulnerability in the jas_iccattrval_destroy function in JasPer 1.900.1 and… Also affects jasper
- CVE-2014-9029 Multiple off-by-one errors in the (1) jpc_dec_cp_setfromcox and (2) jpc_dec_cp_setfromrgn… Also affects jasper
- CVE-2011-4516 Heap-based buffer overflow in the jpc_cox_getcompparms function in libjasper/jpc/jpc_cs.c… Also affects jasper