A flaw in Netscape Communicator's implementation of Java allows malicious applets to read any resource reachable via a URL from the local machine by using the netscape.net.URLConnection and netscape.net.URLInputSteam classes. This allows malicious applets to read local files as well as download data from hosts that would otherwise could be protected by a firewall.
An untrusted applet normally is no allowed to read or write to the local file system, or to open network connections to any machine other than that from which it was downloaded.. Security sensitive classes such as FileInputStream() , RandomAccessFile(), or Socket() normally check whether a class can read from a local file by calling the SecurityManager.checkRead() method or whether it connect to other hosts by calling the SecurityManager.checkConnect() method.
Netscape's netscape.net.URLConnection and netscape.net.URLInputStream classes seem to ignore or not perform these checks when passed an URLs. Thus malicious classes and read local files using URLs of the type "file://".
If the machine running the malicious applet is behind a firewall it will also be able to download resources that can be accessed via a URL, such as web server ("http://" or "https://) or FTP servers ("ftp://"), that the attacker in control of the machine from which the applet was downloaded could not. In this way a malicious applet could be used to penetrate a firewall.