jbigkit stack-based buffer overflow

2014-04-11 / 2014-04-12
Risk: High
Local: Yes
Remote: Yes
CWE: N/A


CVSS Base Score: 6.8/10
Impact Subscore: 6.4/10
Exploitability Subscore: 8.6/10
Exploit range: Remote
Attack complexity: Medium
Authentication: No required
Confidentiality impact: Partial
Integrity impact: Partial
Availability impact: Partial

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.

References:

https://bugzilla.redhat.com/show_bug.cgi?id=1032273


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top