CVE-2014-9029
NoneCVSS
—
EPSS
18.2%
Published
Dec 8, 2014
CISA due date
—
Cloudanix analysis
A bug in image handling software could let attackers take control of a computer simply by getting it to open a specially made picture file.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Off-by-one errors in the jpc_dec_cp_setfromcox and jpc_dec_cp_setfromrgn functions within JasPer's jpc/jpc_dec.c cause heap-based buffer overflows when decoding crafted JP2 files, enabling remote arbitrary code execution.
Why it matters to the business
Systems processing untrusted JP2 images risk full compromise allowing attackers to run malicious code, steal data, or pivot within networks; urgency is low due to the vulnerability's age and lack of active exploitation campaigns.
How an attack unfolds
An attacker creates a specially crafted JP2 file that triggers the off-by-one errors during decoding, then delivers the file via web page, email attachment, or other means; when the victim opens it using vulnerable software relying on JasPer, the overflow occurs and arbitrary code executes.
How to fix it
Update affected packages to fixed versions such as flashplugin-nonfree 11.2.202.554ubuntu0.14.04.1 on Ubuntu 14.04 LTS; generally upgrade JasPer beyond 1.900.1 and rebuild dependent applications.
How to confirm the fix worked
Confirm installed package versions match or exceed the listed fixes, scan for vulnerable JasPer library versions in binaries, and test JP2 handling with benign files after patching.
Typical attack path
- Create malicious JP2 file exploiting off-by-one errors in jpc_dec functions
- Deliver file to target via web, email, or shared storage
- Victim application processes the file using vulnerable JasPer library
- Heap buffer overflow is triggered during decoding
- Arbitrary code execution is achieved
How to detect it
Review application and system logs for crashes or unusual behavior in processes handling JP2 files, monitor for unexpected code execution following image processing, and search historical access logs for suspicious JP2 file deliveries.
What your security team should do
- Apply listed package updates to all affected systems without delay
- Restrict or disable processing of untrusted JP2 files where possible
- Inventory and replace any remaining legacy JasPer dependencies
The record
Multiple off-by-one errors in the (1) jpc_dec_cp_setfromcox and (2) jpc_dec_cp_setfromrgn functions in jpc/jpc_dec.c in JasPer 1.900.1 and earlier allow remote attackers to execute arbitrary code via a crafted jp2 file, which triggers a heap-based buffer overflow.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:6.0 | jasper | 0 | 1.900.1-7+squeeze2 |
| Debian:7 | jasper | 0 | 1.900.1-13+deb7u1 |
| Mageia:4 | jasper | 0 | 1.900.1-15.1.mga4 |
| Red Hat:enterprise_linux:6::client | jasper | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::client | jasper-debuginfo | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::client | jasper-devel | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::client | jasper-libs | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::client | jasper-utils | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::computenode | jasper | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::computenode | jasper-debuginfo | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::computenode | jasper-devel | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::computenode | jasper-libs | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::computenode | jasper-utils | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::server | jasper | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::server | jasper-debuginfo | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::server | jasper-devel | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::server | jasper-libs | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::server | jasper-utils | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::workstation | jasper | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::workstation | jasper-debuginfo | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::workstation | jasper-devel | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::workstation | jasper-libs | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:6::workstation | jasper-utils | 0 | 0:1.900.1-16.el6_6.2 |
| Red Hat:enterprise_linux:7::client | jasper | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::client | jasper-debuginfo | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::client | jasper-devel | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::client | jasper-libs | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::client | jasper-utils | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::computenode | jasper | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::computenode | jasper-debuginfo | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::computenode | jasper-devel | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::computenode | jasper-libs | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::computenode | jasper-utils | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::server | jasper | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::server | jasper-debuginfo | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::server | jasper-devel | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::server | jasper-libs | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::server | jasper-utils | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::workstation | jasper | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::workstation | jasper-debuginfo | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::workstation | jasper-devel | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::workstation | jasper-libs | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:enterprise_linux:7::workstation | jasper-utils | 0 | 0:1.900.1-26.el7_0.2 |
| Red Hat:rhev_manager:3 | rhevm-spice-client | 0 | 0:3.5-3.el6 |
| Red Hat:rhev_manager:3 | rhevm-spice-client-x64-cab | 0 | 0:3.5-3.el6 |
| Red Hat:rhev_manager:3 | rhevm-spice-client-x64-msi | 0 | 0:3.5-3.el6 |
| Red Hat:rhev_manager:3 | rhevm-spice-client-x86-cab | 0 | 0:3.5-3.el6 |
| Red Hat:rhev_manager:3 | rhevm-spice-client-x86-msi | 0 | 0:3.5-3.el6 |
| Ubuntu:14.04:LTS | jasper | 0 | 1.900.1-14ubuntu3.1 |
| openSUSE:Tumbleweed | jasper | 0 | 1.900.14-3.1 |
Related vulnerabilities
- 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-2011-4516 Heap-based buffer overflow in the jpc_cox_getcompparms function in libjasper/jpc/jpc_cs.c… Also affects jasper
- CVE-2011-4517 The jpc_crg_getparms function in libjasper/jpc/jpc_cs.c in JasPer 1.900.1 uses an… Also affects jasper
- 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