CVE-2016-1577
High · 7.6CVSS
7.6
EPSS
3.3%
Published
Apr 13, 2016
CISA due date
—
Cloudanix analysis
A flaw in image software lets attackers crash programs or possibly take control by sending specially made picture files.
- Exploitation
- Requires User Interaction
- Attacker needs
- User Interaction
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Double-free condition in jas_iccattrval_destroy during ICC color profile parsing allows memory corruption when a crafted JPEG 2000 image is processed.
Why it matters to the business
Applications that handle images can crash or allow remote code execution, interrupting services that rely on image processing and increasing risk of compromise on affected systems.
How an attack unfolds
An attacker crafts a JPEG 2000 file containing a malformed ICC color profile that triggers the double free. The malicious image is delivered to a victim application that uses the vulnerable library; when the image is opened or parsed, the flaw is exercised to cause denial of service or execute arbitrary code.
How to fix it
Upgrade JasPer to a version that eliminates the double-free vulnerability in ICC profile handling; rebuild and redeploy any dependent applications with the patched library.
How to confirm the fix worked
Confirm the jas_iccattrval_destroy function has been corrected by source review or by testing with known malicious ICC profiles; ensure no double-free occurs and that image parsing completes without memory errors.
Typical attack path
- Craft JPEG 2000 image with malformed ICC profile targeting the double-free path
- Deliver the image file to the target via web page, email attachment, or document
- Victim application processes or renders the image using the vulnerable JasPer library
- Double free triggers memory corruption leading to crash or code execution
How to detect it
Review application and system logs for unexpected crashes or segmentation faults during JPEG 2000 processing; inspect memory error reports tied to color profile parsing.
What your security team should do
- Apply available JasPer updates to all affected products immediately
- Restrict or sandbox image processing for untrusted files
- Monitor application stability and memory usage when handling JPEG 2000 images
The record
Double free vulnerability in the jas_iccattrval_destroy function in JasPer 1.900.1 and earlier allows remote attackers to cause a denial of service (crash) or possibly execute arbitrary code via a crafted ICC color profile in a JPEG 2000 image file, a different vulnerability than CVE-2014-8137.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:7 | jasper | 0 | 1.900.1-13+deb7u4 |
| Debian:8 | jasper | 0 | 1.900.1-debian1-2.4+deb8u1 |
| Mageia:5 | jasper | 0 | 1.900.1-20.4.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.3 |
| Ubuntu:16.04:LTS | jasper | 0 | 1.900.1-debian1-2.4ubuntu1 |
| 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-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-2015-5203 Double free vulnerability in the jasper_image_stop_load function in JasPer 1.900.17… 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