FreeType2 is an open source library for parsing fonts that is used by many applications. This includes projects such as X.Org, Second Life, GD2, and OpenJDK. For more information, please see the vendor's website at the following URL.
Remote exploitation of multiple heap overflow vulnerabilities in the FreeType2 library, as included in various vendors' operating systems, could allow an attacker to execute arbitrary code with the privileges of the affected application.
Two vulnerabilities exist within the code responsible for parsing font files.
The first vulnerability occurs when parsing Printer Font Binary (PFB) format font files. PFB files contain various data structures, some of which are stored in a tabular format. When parsing tables, the code doesn't correctly validate a value used as an array index into a heap buffer. The calculation contains an off-by-one error, which can result in a heap overflow.
The second vulnerability occurs when parsing TrueType Font (TTF) font files. TrueType font files contain "font programs" that are executed in a TrueType virtual machine. One of the instructions in the instruction set is 'SHC', which is used to shift a contour in the font by a specified value. When parsing this instruction, the code doesn't correctly validate an array index, which leads to an off-by-one heap overflow.
Exploitation of these vulnerabilities results in the execution of arbitrary code with the privileges of the application using the library. Since FreeType2 is a library and not a standalone application, the exploitation vector will vary. iDefense Labs verified that local privilege escalation was possible via the X.Org Xserver.
iDefense has confirmed the existence of these vulnerabilities in FreeType2 version 2.3.5. Previous versions may also be affected.
iDefense is currently unaware of any workarounds for these issues. Changing the permissions on the freetype.so library may not always be effective since applications that run with root privileges are not restricted by file permissions.
The FreeType maintainers addressed these vulnerabilities with the release of version 2.3.6. For more information, refer to the release notes at the following URL.
The Common Vulnerabilities and Exposures (CVE) project has assigned the name CVE-2008-1808 to this issue. This is a candidate for inclusion in the CVE list (http://cve.mitre.org/), which standardizes names for security problems.
06/03/2008 Initial vendor notification
06/04/2008 Initial vendor response
06/10/2008 Coordinated public disclosure
These vulnerabilities were reported to iDefense by regenrecht.
Get paid for vulnerability research
Free tools, research and upcoming events
Copyright © 2008 Verisign, Inc.
Permission is granted for the redistribution of this alert electronically. It may not be edited in any way without the express written consent of iDefense. If you wish to reprint the whole or any part of this alert in any other medium other than electronically, please e-mail customer service for permission.
Disclaimer: The information in the advisory is believed to be accurate at the time of publishing based on currently available information. Use of the information constitutes acceptance for use in an AS IS condition. There are no warranties with regard to this information. Neither the author nor the publisher accepts any liability for any direct, indirect, or consequential loss or damage arising from use of, or reliance on, this information.