A potent Java security vulnerability that first appeared earlier this week actually leverages two zero-day flaws. The revelation comes as it emerged Oracle knew about the holes as early as April.
Windows, Mac OS X and Linux desktops running multiple browser platforms are all vulnerable to attacks. Exploit code already in circulation first uses a vulnerability to gain access the restricted sun.awt.SunToolkit class before a second bug is used to disable the SecurityManager, and ultimately to break out of the Java sandbox.
"The beauty of this bug class is that it provides 100 per cent reliability and is multi-platform," Esteban Guillardoy, a researcher at Argentina-based security outfit Immunity explains in a technically detailed blog post here. "Hence this will shortly become the penetration test Swiss knife for the next couple of years."
Unpatched vulnerabilities to the so-called Gondvv exploit were introduced in Java 7.0, released in July 2011. All versions of Java 7 are vulnerable but older Java 6 versions appear to be immune. This factor means that Mac OS X users who follow best practice and apply the latest version of software applications are more at risk of attack.
As a result of the dual vulnerability in the most recent version of Java, attackers can spread malware simply by tricking users into visiting booby-trapped websites. Malicious code can be loaded onto vulnerable computers without user interaction. The zero-day exploit has already made its way into the infamous Blackhole Exploit kit. "Due to the Java 0-day, BlackHole exploitation success rate increased from 10 per cent to 25 per cent," Aviv Raff, chief technology officer at Seculert, warns.
Modules to test for the exploit have also been folded into Metasploit, the widely used penetration testing framework. In addition, the exploit has already appeared in targeted attacks originating on Chinese-hosted domains, security researchers at FireEye warn. AlienVault has also spotted examples of active malfeasance.
Oracle, which has maintained Java since the enterprise systems giant bought Sun Microsystems, has yet to issue an advisory on the problem. Its quasi-dormant security blog can be found here.
In the absence of a patch for a potent and already abused vulnerability, the best advice is to disable Java in web browsers, the most obvious attack route. Instructions on how to do this can be found in an advisory by US CERT here and on F-Secure's website here.
Sean Sullivan, a security adviser at F-Secure, commented: "The perpetual vulnerability machine that is Oracle's Java Runtime Environment (JRE) has yet another highly exploitable vulnerability (CVE-2012-4681). And it's being commoditised at this very moment. There being no latest patch against this, the only solution is to totally disable Java."
When you disable Java in Chrome, it's still possible to enable the technology for a specific site that users trust. This is a useful exception for banking sites and the like that require the use of Java. The site exception controls built into Chrome are explained in a Google knowledge base article here.