Bug 842918 (CVE-2012-3535)
Summary: | CVE-2012-3535 openjpeg: heap-based buffer overflow when decoding jpeg2000 files | ||
---|---|---|---|
Product: | [Other] Security Response | Reporter: | Vincent Danen <vdanen> |
Component: | vulnerability | Assignee: | Red Hat Product Security <security-response-team> |
Status: | CLOSED ERRATA | QA Contact: | |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | unspecified | CC: | fweimer, security-response-team, tgl |
Target Milestone: | --- | Keywords: | Security |
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2012-12-20 17:56:11 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 851955, 856048, 856049 | ||
Bug Blocks: | 842919 |
Description
Vincent Danen
2012-07-24 22:31:21 UTC
Upstream bug: http://code.google.com/p/openjpeg/issues/detail?id=170 This has been assigned CVE-2012-3535 via: http://seclists.org/oss-sec/2012/q3/300 Created openjpeg tracking bugs for this issue Affects: fedora-all [bug 851955] Analysis of the issue: (Applicable to openjpeg-1.3 and openjpeg-1.4) The cause of crash while decoding JPEG2000 files is user controlled invalid memory write while decoding (atleast partly user-controlled in this case). In j2k.c:j2k_read_cox(), tccp->numresolutions (1 byte) is read from the file via: 648 tccp->numresolutions = cio_read(cio, 1) + 1; /* SPcox (D) */ This number is not validated, and later in the code is directly used as an index when writing to the tccp->prcw array. The size of the tccp->prcw array is J2K_MAXRLVLS, which is defined in openjpeg.h as: #define J2K_MAXRLVLS 33 The following simple patch should fix this issue for openjpeg 1.3 and 1.4: - for (i = 0; i < tccp->numresolutions; i++) { + for (i = 0; i < tccp->numresolutions && i < J2K_MAXRLVLS; i++) { Upstream patch at: http://code.google.com/p/openjpeg/issues/detail?id=170#c6 Final upstream patches: Trunk: http://code.google.com/p/openjpeg/source/detail?r=1918 1.5 branch: http://code.google.com/p/openjpeg/source/detail?r=1919 This issue has been addressed in following products: Red Hat Enterprise Linux 6 Via RHSA-2012:1283 https://rhn.redhat.com/errata/RHSA-2012-1283.html |