Exploit:Java/CVE-2011-3544 is a family of malicious Java applets that attempt to exploit a vulnerability in the Java Runtime Environment (JRE) in order to download and install files of an attacker's choice onto your computer. Oracle Java SE JDK and JRE 7 and 6 Update 27 and earlier are all vulnerable to this exploit.
To check if you're running a vulnerable version of Java:
- Go to the control panel (Select Start|Control Panel)
- Select Programs. If Java is installed you will see it in the list of installed programs. Click it to open the Java Control Panel.
- On the General tab, click About to see which version of Java you have installed.
Make sure that you install all available updates from the vendor in order to avoid this exploit. You can read more about this vulnerability and download software updates from these links:
Note: This detection may be triggered when you visit a website that contains the malicious code. Even if you are not using a vulnerable version of the JRE this detection may be reported when you visit a website that contains the malicious code. This does not mean that you have been compromised, rather that an attempt to compromise your computer has been made.
Threat in context
Java is a general-purpose programming language, but cases of this exploit are targeted against the Java plug-in for web browsers. The intent of the Java plug-in is that Java programs (or "applets") can be offered by websites, and run in a "sandbox" where the Java plug-in enforces rules on what the Java applet can do so that it cannot escape outside the webpage it is included in.
What is an exploit?
Exploits are written to take advantage of weaknesses (or "vulnerabilities") in legitimate software. A project called "Common Vulnerability Enumeration" (or "CVE"), used by many vendors and organizations, gives each vulnerability a unique number, in this case "CVE-2011-3544". The portion "2011" refers to the year the vulnerability was discovered, and "3544" is a unique ID for this specific vulnerability. The official source that gives out CVE identifiers lists this at http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2011-3544.
Payload
Downloads and installs arbitrary files
If you visit a website containing the malicious code while using a vulnerable version of Java, Exploit:Java/CVE-2011-3544 is loaded. It then attempts to download and execute files from a remote host/URL. The files that are downloaded and executed could be any of the attacker's choice and could include additional malware.
Additional technical details
Exploit:Java/CVE-2011-3544 uses a bug in the JavaScript engine inside of the Java Runtime. Java applets can run JavaScript code, and normally the JavaScript code is subject to the same restrictions that the Java applet is. The JavaScript function in this exploit extends the internal function "toString" with its own code. Then it calls a built-in, privileged routine, such as the Error object, that it knows will call the "toString" function that it just redefined. When it calls the "toString" function, the attacker’s code is then run with elevated privileges. The exploit takes these privileges and can then run outside of the sandbox.
In summary, Exploit:Java/CVE-2011-3544 attacks the security model instead of a buffer overflow. With a buffer overflow, the exploit is dependent on the specific CPU (Central Processing Unit), and might be affected by technology like DEP (Data Execution Prevention) or ASLR (Address Space Layout Randomization).
Attacking the security model means that the exploit might be effective on any platform the Java interpreter is on; for example Windows, MacOS, Linux, etc.
Usually the exploits are written using a few Java classes working together. The various class files are bundled into an archive called a JAR, which uses the ZIP file format. Every JAR contains a Manifest.MF file to identify itself to the Java Runtime. Since it is found in every JAR, it won't be listed.
Below are some examples of files that exploit the vulnerability described in CVE-2011-3544:
- 00090b78cd0730dd0f4d04be9ff213b35545c1da
- 00237384c62d1e260f6ed9a277f80bdd37cc3a61, 029bb2d8f3bc7cf79cd249798b69d3410efee6a0, 033d594bcaa585db419f76aeaca0edd74c8e02aa
- Final.class
- j.class
- n.class
- 002fcef6e70c9227420a2e97bafa038c9f14cc0d
- 00c12fd7e080575de56869f66e4d8a973ca96f74, 023683cb65ff1a7779d0d66427fa8ce5f21d65c4, 026298551b026211c2533274c02f060438eb6107
- 019b19718b76238322efde40f198c95beab11b8d
- 01bd5a820497cd98b33b3548feb465be8f6c3ad1
- 01e5873ebdc406428c0417f566c71b5dfe99e814
- 0203f381dda60ad68b0dd9eba9e4b83dfa88a13d
- 02da44e5f7f4817697162cf7da2c7e9445ceb1d6
- 033b8a2d9b8c6cf0acd4d9707cdc7c853e9c3e45
- Final.class
- m.class
- q.class
- 0368f2cbb64102d2923468e736f1c624abb1aa03
Some payloads are specifically targeted against MacOS X, for example:
- 7cdc96c8705aeb324aa08b9cc3c171b9da67f576
- Exploit.class
- metasploit.dat (a configuration file for the payload)
- Payload.class
Once the exploit obtains full privileges on your computer, it may:
- Run an executable file (that may be detected as malware) included in the JAR
- Run an executable file from (that may be detected as malware) a URL hardcoded in the exploit's file
- Take instructions from the HTML file (such as a URL to the malware executable) that loaded them
In the wild, we have observed the following malware being distributed in the exploit's JAR files:
Related information / Related references
The articles referenced below outline some of the the technical details of the weakness this vulnerability exploits:
Analysis by Chris Stubbs