Public Vulnerability Reports

Sun Java Plugin Arbitrary Package Access Vulnerability



Java Plug-in technology, included as part of the Java 2 Runtime
Environment, Standard Edition (JRE), establishes a connection between
popular browsers and the Java platform. This connection enables applets
on Web sites to be run within a browser on the desktop. More information
about Java Plug-in technology is available from


Remote exploitation of a design vulnerability in Sun Microsystems Inc.'s
Java Plug-in technology allows attackers to bypass the Java sandbox and
all security restrictions imposed within Java Applets.

A number of private Java packages exist within the Java Virtual Machine
(VM) and are used internally by the VM. Security restrictions prevent
Applets from accessing these packages. Any attempt to access these
packages, results in a thrown exception of 'AccessControlException',
unless the Applet is signed and the user has chosen to trust the issuer.

The problem specifically exists within the access controls of the Java
to Javascript data exchange in web browsers using Sun's Java Plug-in
technology. The vulnerability allows Javascript code to load an unsafe
class which should not normally be possible from a Java Applet.


Successful exploitation allows remote attackers to execute hostile
Applets that can access, download, upload or execute arbitrary files as
well as access the network. A target user must be running a browser on
top of a vulnerable Java Virtual Machine to be affected. It is possible
for an attacker to create a cross-platform, cross-browser exploit for
this vulnerability. Once compromised, an attacker can execute arbitrary
code under the privileges of the user who instantiated the vulnerable


iDEFENSE has confirmed the existence of this vulnerability in Java 2
Platform, Standard Edition (J2SE) 1.4.2_01 and 1.4.2_04 from Sun
Microsystems. It is suspected that earlier versions are vulnerable as
well. Various browsers such as Internet Explorer, Mozilla and Firefox on
both Windows and Unix platforms can be exploited if they are running a
vulnerable Java Virtual Machine.


Disabling JavaScript will prevent exploitation as the vulnerability
relies on the data transfer between the Java and JavaScript components.
Other Java Virtual Machines, such as the Microsoft VM, are available and
can be used as an alternative. It should be noted that if you are using
a different Java Virtual Machine as a workaround to this vulnerability
then you must uninstall any vulnerable JVM's as an attacker can still
specify that the vulnerable JVM be loaded for exploitation.


This issue has been fixed in J2SE v 1.4.2_06 available at:


The Common Vulnerabilities and Exposures (CVE) project has assigned the
name CAN-2004-1029 to this issue. This is a candidate for inclusion in
the CVE list (, which standardizes names for
security problems.


06/29/2004    Initial vendor notification
06/30/2004    Initial vendor response
08/16/2004    iDEFENSE clients notified
11/22/2004    Public disclosure


Jouko Pynnonen (jouko[at] is credited with this discovery.

Get paid for vulnerability research


Copyright © 2004 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
email 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.