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.
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.
Created attachment 826828 [details] upstream patch Patch supplied by upstream to correct the flaw.
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/
Created jbigkit tracking bugs for this issue: Affects: fedora-all [bug 1085362]
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.
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.
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.