The current version of Java 7 includes a bug that can be used to bypass all security defenses in the Java browser plug-in, allowing an attacker to execute arbitrary code using the Java runtime environment installed on a PC.
That warning was sounded Sunday by veteran Java bug hunter Adam Gowdiak, CEO and founder of Poland-based Security Explorations in a post to the Bugtraq mailing list, subject-lined "an issue with new Java SE 7 security features."
His warning comes despite Oracle changing the Java 7 security controls -- with the release of update 10 in Oct. 2012 -- to allow users to select low (run most unsigned apps without warning), medium (only run unsigned apps if Java looks secure), high (require user authorization before executing unsigned apps) and very high (unsigned apps not allowed to run) security settings. With the release of Java 7 update 11 this month, furthermore, Oracle set Java 7 to the "high" level by default, which it said would block the in-the-wild attacks seen earlier this month.
[ What do you need to know about the recent Java security breaches? See Java Security Warnings: Cut Through The Confusion. ]
But according to Gowdiak, he's discovered a new vulnerability in Java 7 that can be used to bypass those security settings and silently execute attack code. "What we found out and what is a subject of a new security vulnerability (Issue 53) is that unsigned Java code can be successfully executed on a target Windows system regardless of the four Java Control Panel settings described above," he said. "Our Proof of Concept code that illustrates Issue 53 has been successfully executed in the environment of latest Java SE 7 Update 11 (JRE version 1.7.0_11-b21) under Windows 7 OS and with "Very High" Java Control Panel security settings."
As a result, he said, the vulnerability could be used by an attacker "to execute an unsigned (and malicious!) Java code" without the user seeing any warnings before the app is allowed to run. But Gowdiak noted that "click to play" technology built into some browsers -- Chrome, Firefox and Opera -- would mitigate the vulnerability and prevent silent exploits. The feature, however, is not necessarily enabled by default.
Oracle has been moving to address growing security concerns over Java, including the efficacy of its Java 7 update 11. That update reportedly fixed one of two zero-day flaws being actively exploited by attackers but failed to fully mitigate the other vulnerability. "As you know, the vulnerability pertains to Java on the browser, not server-side Java, desktop Java or embedded Java," said Oracle's "Java EE/GlassFish evangelist" Reza Rahman Friday in a blog post. "You may also have been frustrated with Oracle's relative silence on the issue."
To address that, Oracle on Friday released an audio recording of a call between Oracle security lead Martin Smith and Doland Smith from the OpenJDK team, with worldwide leaders of the Java user group. Rahman billed it as "a frank two-way discussion with Java community leaders about Java security, bundled software installers, openness, communication and the technical/journalistic quality of recent press coverage in some venues."
"The plan for Java security is really simple," said Smith on the call. "It's to get Java fixed up, number one, and then number two, to communicate our efforts widely. We really can't have one without the other. No amount of talking or smoothing over is going to make anybody happy. We have to fix Java."
In the past year, Security Explorations has spotted 53 flaws in Java 7, all of which it has disclosed to Oracle. According to the Security Explorations website, the latest vulnerability notice (for bug 53) -- and proof-of-concept exploitation code -- were sent to Oracle Sunday. By Monday, Oracle had confirmed receipt of the vulnerability report and promised to investigate the bug.
Interestingly, on Friday Oracle told Security Explorations that three of the four still-outstanding flaws (vulnerabilities 29, 50 and 52) that Gowdiak found -- including one of two disclosed to Oracle on Jan. 18 -- have been remediated in the Java code base and are scheduled to be released in a forthcoming critical patch update for Java. (Oracle said it's still investigating the fourth bug, which is number 51 in the Security Explorations count.)
The next regularly scheduled update from Oracle would be April 16, although the company has previously released "out of band" patches to correct serious vulnerabilities.
In the interim, how can users mitigate the zero-day flaw spotted by Gowdiak -- which, to be clear, hasn't been seen in any known attacks to date? Of course, users can take their chances and wait for Oracle's fix. Alternately, they can disable in-browser Java altogether, which is the current recommendation from the Department of Homeland Security, provided Java isn't required. If it is, security experts have recommended maintaining one Java-free browser and another browser with the Java plug-in enabled, and using the latter only to visit trusted websites that require in-browser Java.
Utilities such as the Firefox extension NoScript can also help secure users against attacks launched via untrusted sites. "NoScript does block any Java attack from sites which have not been explicitly whitelisted by the user," said developer Giorgio Maone, co-founder of Italian software development firm InformAction, via email. "Therefore, even if Java may be required by an application of your company or your online banking site, you can use it while being protected from third-party attacks."
To date, however, NoScript is available only for Firefox. "Even though I'd like to port it to Chrome due to its popularity, no browser besides Firefox yet has the level of extensibility needed to make a reliable and complete clone," said Maone.
Offensive cybersecurity is a tempting prospect. It's also way too early to go there. Here's what to do instead. Also in the new, all-digital Nuclear Option issue of InformationWeek: Military agencies worldwide are figuring out the tactics and capabilities that will be critical in any future cyber war. (Free registration required.)