Bug 1032273 - (CVE-2013-6369) CVE-2013-6369 jbigkit: stack-based buffer overflow flaw
CVE-2013-6369 jbigkit: stack-based buffer overflow flaw
Status: CLOSED CURRENTRELEASE
Product: Security Response
Classification: Other
Component: vulnerability (Show other bugs)
unspecified
All Linux
medium Severity medium
: ---
: ---
Assigned To: Red Hat Product Security
impact=moderate,public=20140408,repor...
: Security
Depends On: 1083412 1085362
Blocks: 1032191 1032275
  Show dependency treegraph
 
Reported: 2013-11-19 16:27 EST by Vincent Danen
Modified: 2014-11-11 02:39 EST (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-11-10 04:46:02 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


Attachments (Terms of Use)
upstream patch (4.38 KB, patch)
2013-11-20 15:02 EST, Vincent Danen
no flags Details | Diff

  None (edit)
Description Vincent Danen 2013-11-19 16:27:13 EST
Florian Weimer found a stack-based buffer overflow flaw in the libjbig library (part of jbigkit).  A specially-crafted image file read by libjbig could be used to cause a program linked to libjbig to crash or, potentially, to execute arbitrary code.

Acknowledgements:

This issue was discovered by Florian Weimer of the Red Hat Product Security Team.
Comment 2 Florian Weimer 2013-11-20 04:25:01 EST
The problematic loop is the while loop in this snippet from libjbig/jbig.c:jbg_dec_in():

  /* read in DPTABLE */
  if (s->bie_len < 20 + 1728 && 
      (s->options & (JBG_DPON | JBG_DPPRIV | JBG_DPLAST)) ==
      (JBG_DPON | JBG_DPPRIV)) {
    assert(s->bie_len >= 20);
    while (s->bie_len < 20 + 1728 && *cnt < len)
      s->buffer[s->bie_len++ - 20] = data[(*cnt)++];
    if (s->bie_len < 20 + 1728) 
      return JBG_EAGAIN;
    if (!s->dppriv || s->dppriv == jbg_dptable)
      s->dppriv = (char *) checked_malloc(1728, sizeof(char));
    jbg_dppriv2int(s->dppriv, s->buffer);
  }

s->buffer has only 20 bytes, and the loop copies much more than that.
Comment 3 Vincent Danen 2013-11-20 15:02:08 EST
Created attachment 826828 [details]
upstream patch

Patch supplied by upstream to correct the flaw.
Comment 11 Huzaifa S. Sidhpurwala 2014-04-08 08:57:23 EDT
Public via:

https://www.cl.cam.ac.uk/~mgk25/jbigkit/CHANGES

Upstream has released jbigkit-2.1.tar.gz to fix this issue:
https://www.cl.cam.ac.uk/~mgk25/jbigkit/
Comment 12 Huzaifa S. Sidhpurwala 2014-04-08 08:58:54 EDT
Created jbigkit tracking bugs for this issue:

Affects: fedora-all [bug 1085362]
Comment 13 Fedora Update System 2014-04-15 11:55:53 EDT
jbigkit-2.0-10.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 14 Fedora Update System 2014-04-23 00:32:54 EDT
jbigkit-2.0-9.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 15 Florian Weimer 2014-11-10 04:46:02 EST
Statement:

This issue did not affect the versions of jbigkit as shipped with Red Hat Enterprise Linux 7, as the issue was corrected before the release of Red Hat Enterprise Linux 7.

Note You need to log in before you can comment on or make changes to this bug.