// back

Sun Java Runtine Environment (JRE) Type1 Font Parsing Integer Signedness Vulnerability

03.26.09

BACKGROUND

The Sun Java JRE is Sun's implementation of the Java runtime. For more information, see the vendor's site found at the following link.

http://www.java.com

DESCRIPTION

Remote exploitation of an integer signedness vulnerability in Sun Microsystems Inc.'s Java JRE could allow an attacker to execute arbitrary code with the privileges of the current user.

The vulnerability exists within the font parsing code in the JRE. As part of its font API, the JRE provides the ability to load a font from a remote URL.

The vulnerability occurs when parsing glyph description instructions in the font file. When parsing the glyph descriptions, a 16bit signed counter is used as the index to store the next glyph point value. This counter is compared to a 32bit value that represents the maximum size of the heap buffer. Under certain conditions, the 16bit counter will be interpreted as a negative value, which allows the attacker to store data before the allocated buffer.

ANALYSIS

Exploitation allows attackers to execute arbitrary code in the context of the currently logged-on user. To exploit this vulnerability, a targeted user must load a malicious Web page created by an attacker. An attacker typically accomplishes this via social engineering or injecting content into compromised, trusted sites.

DETECTION

iDefense has confirmed the existence of this vulnerability in Sun Microsystem Inc.'s Java JRE version 1.6.0_11 for Windows. Previous versions and versions for other platforms may also be affected.

Sun Microsystems reports that the vulnerability can occur in the following Java SE and Java SE for Business releases for Windows, Solaris, and Linux:

 * JDK and JRE 6 Update 12 and earlier * JDK and JRE 5.0 Update 17 and earlier 

WORKAROUND

There is a potential workaround for the vulnerability, but it renders the JRE unusable. It is possible to use the cacls program to change the file permissions on fontmanager.dll. This will prevent the vulnerable library from loading. This workaround can be applied with the following command line:

echo y| cacls "C:Program FilesJava**JRE_VERSION**binfontmanager.dll" /E /P everyone:N

However, this workaround has a serious impact on the functionality of the JRE. When a webpage attempts to load an applet, the JRE will abort with a runtime error, and the browser will close.

VENDOR RESPONSE

Sun Microsystem Inc. has released a patch which addresses this issue. For more information, consult their advisory at the following URL:

http://sunsolve.sun.com/search/document.do?assetkey=1-66-254571-1

CVE INFORMATION

A Mitre Corp. Common Vulnerabilities and Exposures (CVE) number has not been assigned yet.

DISCLOSURE TIMELINE

02/18/2009 - Initial Contact
02/18/2009 - PoC Requested
02/19/2009 - PoC Sent
03/10/2009 - Disclosure Date Set
03/25/2009 - Coordinated Public Disclosure

CREDIT

This vulnerability was discovered by Sean Larsson, iDefense.

Get paid for vulnerability research
http://labs.idefense.com/methodology/vulnerability/vcp.php

Free tools, research and upcoming events
http://labs.idefense.com/

LEGAL NOTICES

Copyright © 2009 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.