Bug 800595 (CVE-2012-1137)

Summary: CVE-2012-1137 freetype: heap buffer off-by-one in BDF parsing _bdf_list_ensure() (#35643)
Product: [Other] Security Response Reporter: Jan Lieskovsky <jlieskov>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: low Docs Contact:
Priority: low    
Version: unspecifiedCC: behdad, fonts-bugs, jrusnack, kevin, mkasik
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: impact=low,public=20120227,reported=20120302,source=customer,cvss2=4.3/AV:N/AC:M/Au:N/C:N/I:N/A:P,rhel-4/freetype=notaffected,rhel-5/freetype=affected,rhel-6/freetype=affected,fedora-all/freetype=affected,fedora-all/mingw32-freetype=affected,cwe=(CWE-122|CWE-125)
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-24 16:02:30 EST Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On: 806266, 806267, 806268, 806269, 806270, 806271, 889398    
Bug Blocks: 800639    

Description Jan Lieskovsky 2012-03-06 13:54:29 EST
An out-of heap-based buffer read flaw was found in the way FreeType font rendering engine performed loading and parsing of file header information for glyph bitmap distribution format (BDF) font files. A remote attacker could provide a BDF font file with specially-crafted BDF header, which once processed in an application linked against FreeType would lead to that application crash.

Upstream bug report:
[1] https://savannah.nongnu.org/bugs/?35643

Upstream patch:
[2] http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=cee5d593582801f65c5e127d9de9ca24ebcdc747

Acknowledgements:

Red Hat would like to thank Mateusz Jurczyk of the Google Security Team for reporting this issue.
Comment 1 Kurt Seifried 2012-03-06 15:55:33 EST
Added CVE as per http://www.openwall.com/lists/oss-security/2012/03/06/16
Comment 2 Tomas Hoger 2012-03-15 10:24:11 EDT
This is an issue in _bdf_list_ensure() in bdflib.c.  When allocating field[] array, a space for at least 4 items is allocated.  However, the rest of the code assume that field[] always has at least 5 items.  This leads to an off-by-one buffer over-read.  field[] items are char*, so this may cause program to use an uninitialized pointer for reading and possibly crash.
Comment 4 errata-xmlrpc 2012-04-10 15:59:09 EDT
This issue has been addressed in following products:

  Red Hat Enterprise Linux 5
  Red Hat Enterprise Linux 6

Via RHSA-2012:0467 https://rhn.redhat.com/errata/RHSA-2012-0467.html