iDefense Security Advisory 12.02.08 - Remote exploitation of a memory corruption vulnerability in Sun Microsystems Inc.'s Java Web Start could allow an attacker to execute arbitrary code with the privileges of the current user. When JWS starts up, it displays a splash screen. By default, the image displayed on this splash screen is a GIF file provided by Sun, but it is possible for an attacker to pass an arbitrary GIF file to the splash logo parsing code. The vulnerability occurs when parsing this GIF file. The parsing code does not correctly validate several values in the GIF header. This lets an attacker write data outside of the bounds of an allocated heap buffer, which can lead to the execution of arbitrary code. iDefense has confirmed the existence of this vulnerability in Java Web Start version 1.6_10 and 1.6_07 on Windows and Linux. Previous versions may also be affected.
790c9e0a41b95f39a04f9482a6b4f788552c5cbb8b7c9ddd89a814700672e139
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
iDefense Security Advisory 12.02.08
http://labs.idefense.com/intelligence/vulnerabilities/
Dec 02, 2008
I. BACKGROUND
Java Web Start (JWS) is a framework built by Sun that is used to run
Java applications outside of the browser. It is distributed with the
Java Runtime Environment (JRE) installation. JWS is typically launched
by clicking on a link in the browser, and results in a separate process
being started that is not tied to the JVM inside of the browser. A file
contains various parameters that describe the Java application to be
run. For more information, see the vendor's site found at the following
link.
http://java.sun.com/javase/technologies/desktop/javawebstart/index.jsp
II. DESCRIPTION
Remote exploitation of a memory corruption vulnerability in Sun
Microsystems Inc.'s Java Web Start could allow an attacker to execute
arbitrary code with the privileges of the current user.
When JWS starts up, it displays a splash screen. By default, the image
displayed on this splash screen is a GIF file provided by Sun, but it
is possible for an attacker to pass an arbitrary GIF file to the splash
logo parsing code.
The vulnerability occurs when parsing this GIF file. The parsing code
does not correctly validate several values in the GIF header. This lets
an attacker write data outside of the bounds of an allocated heap
buffer, which can lead to the execution of arbitrary code.
III. ANALYSIS
Exploitation of this vulnerability results in the execution of arbitrary
code with the privileges of the user. There are several ways to exploit
this vulnerability. In Internet Explorer 6, after the user visits the
malicious web page, no further user interaction is needed. However, in
FireFox and Internet Explorer 7, the user will be presented with the
'File Open' confirmation dialog, and will have to accept opening the
file. It would also be possible for an attacker to e-mail an infected
file to a user, or place it on a shared network drive. In this
situation, a targeted user would need to manually open the file.
Even though the vulnerability is likely to be triggered through the
browser, the actual vulnerability occurs in the Web Start binary. Since
this vulnerability allows for relatively precise control of the area and
content of memory corrupted, reliable exploitation is possible.
IV. DETECTION
iDefense has confirmed the existence of this vulnerability in Java Web
Start version 1.6_10 and 1.6_07 on Windows and Linux. Previous versions
may also be affected.
V. WORKAROUND
On Windows, it is possible to prevent automatic exploitation by double
clicking such a file, or opening it through the browser by removing the
file associations for JNLP files. However, if a user specifically
selects the Java Web Start application to open the JNLP file,
exploitation is still possible. This can be done by removing the
registry key for .jnlp in the 'HKEY_CLASSES_ROOT' registry hive.
An additional workaround which will prevent all exploitation attempts is
to rename the splashscreen library so that Java Web Start will not be
able to load it. This file is found in different locations depending on
the platform and installation choices, but one such location is:
C:\Program Files\Java\jre6\bin\splashscreen.dll
Renaming this file to splashscreen.dll.bak will prevent it from being
loaded.
VI. VENDOR RESPONSE
Sun Microsystems 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-244987-1
VII. CVE INFORMATION
A Mitre Corp. Common Vulnerabilities and Exposures (CVE) number has not
been assigned yet.
VIII. DISCLOSURE TIMELINE
10/01/2008 Initial Vendor Notification
11/05/2008 Initial Vendor Reply
11/25/2008 Additional Vendor Feedback
12/02/2008 Coordinated Public Disclosure
IX. CREDIT
This vulnerability was reported to iDefense by regenrecht.
Get paid for vulnerability research
http://labs.idefense.com/methodology/vulnerability/vcp.php
Free tools, research and upcoming events
http://labs.idefense.com/
X. LEGAL NOTICES
Copyright © 2008 iDefense, 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 customerservice@idefense.com 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.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFJOE4Ibjs6HoxIfBkRAq7lAKDWvrsT2+KJSfwTUA4hVm0PZBhG2wCg28SF
2g/yCJEYuFi+VeZOd0h9LFI=
=F+J5
-----END PGP SIGNATURE-----