Java's new security settings, designed to block "drive-by" browser attacks, can be bypassed by hackers, a researcher announced on Sunday US time.
The news came in the aftermath of several embarrassing "zero-day" vulnerabilities, and a recent commitment by the head of Java security that his team would fix bugs in the software.
The Java security provisions that can be circumvented were introduced last December with Java 7 Update 10, and let users decide which Java applets are allowed to run within their browsers. The most stringent of the four settings is supposed to block any applet not signed with a valid digital certificate. Other settings freely allow most unsigned applets, execute unsigned applets only if Java itself is up to date, or display a warning before unsigned applets are allowed to run.
But according to Adam Gowdiak, CEO of Security Explorations, none of the settings can stymie an attacker.
"What we found ... is that unsigned Java code can be successfully executed on a target Windows system regardless of the four Java Control Panel settings," Gowdiak wrote in a message posted Sunday to the Bugtraq mailing list.
In an email reply to questions Sunday, Gowdiak said there was a single vulnerability that makes the bypass possible. "It could be used to successfully launch unsigned Java code on a target system regardless of the security level set by the user in Java Control Panel. [The] 'High' or 'Very High' security [setting] does not matter here, the code will still run," he said.
After discovering the vulnerability and creating a proof-of-concept exploit that worked on Java 7 Update 11 - the version released two weeks ago - running on Windows 7, Gowdiak reported the bug to Oracle.
His discovery makes moot - in theory at least - Oracle's latest security change. When it shipped an emergency update on Jan. 13 to quash two critical Java browser plug-in vulnerabilities, including one that was actively being exploited by cyber criminals, Oracle also automatically reset Java to the "High" security level. At that setting, Java notifies users before they can run unsigned applets.
Although there's no evidence of hackers exploiting the newest vulnerability, Gowdiak hinted that it wouldn't be difficult for them to do so. "It should be considered in terms of a big miss by Oracle," Gowdiak said. "We were truly surprised to find out how trivial it is to bypass these new security settings."
Hackers have stepped up their attacks against Java and its browser plug-in, with some security firms estimating that they account for more than half of all attempted exploits. Most often, Java exploits are used to conduct "drive-by" attacks, or ones that install malware on PCs and Macs after their owners simply browse to compromised or malicious websites.
Gowdiak published his claim just days after Oracle released a recording of a conference call between Milton Smith, the senior principal product manager who oversees Java security, and Java user group leaders, to discuss the recent vulnerabilities and steps Oracle was taking.
During the call, Smith touted the security enhancements to Java 7, including the introduction of the settings in Update 10, and the change of the default from "Medium" to "High" in Update 11. "[They] effectively make it so that unsigned applets won't run without a warning," Smith said of the security settings. "Some of the things we were seeing were silent exploits, where people would click on a link in an email and unwittingly compromise a machine. But now those features really prevent that. Even if Java did have an exploit, it would be very hard to do it silently."
According to Gowdiak, that's exactly what the newest vulnerability could let attackers do. "Recently made security improvements to Java 7 don't prevent silent exploits at all," Gowdiak wrote on Bugtraq.
When asked how users who must run Java in their browser should protect themselves against possible exploits, Gowdiak repeated his earlier suggestion that people turn to a browser with "click-to-play," a feature that forces users to explicitly authorize a plug-in's execution. Both Chrome and Firefox include click-to-play.
"That may help prevent automatic and silent exploitation of known and not-yet-addressed Java plug-in vulnerabilities," Gowdiak said.