Oracle announced on Wednesday that it has released an update for Java SE to address a serious vulnerability.
While the technology giant’s advisory doesn’t include many details, SecurityWeek has learned that the latest Java update is actually another attempt by Oracle to patch CVE-2013-5838, a sandbox escape flaw reported by Poland-based Security Explorations in 2012.
Security Explorations reported a total of 69 Java SE vulnerabilities to Oracle, many of which were patched in 2012 and 2013. The bug tracked as CVE-2013-5838 was supposedly patched by Oracle with its October 2013 CPU, but Security Explorations revealed earlier this month that the fix was inefficient and it could be easily bypassed.
Researchers successfully tested their exploit on Java SE 7 Update 97, Java SE 8 Update 74 and Java SE 9 Early Access Build 108. Oracle has now assigned a new CVE identifier for the vulnerability, namely CVE-2016-0636, and released Java SE 8 update 77 and Java SE 7 Update 99 to address it.
“We verified that the [new] fix blocks our Proof of Concept code,” Adam Gowdiak, CEO and founder of Security Explorations, told SecurityWeek. “It also modifies the vulnerable method exploited to set up a class spoofing condition described in our original report (isTypeVisible method of sun.invoke.util.VerifyAccess class).”
As per its new policy, Security Explorations did not notify Oracle about the broken patch before disclosing its details.
In its new alert, Oracle said the vulnerability can be exploited by a remote, unauthenticated attacker by tricking users into visiting a maliciously crafted webpage. The company advised users to apply the update as soon as possible considering that the technical details of the vulnerability have already been made public.
When it reported discovering that Oracle’s patch for CVE-2013-5838 was incomplete, Security Explorations noted that it disagreed with the vendor’s initial evaluation of the bug’s impact. Gowdiak says the new advisory is also inaccurate regarding the impact of the issue.
“It's again misleading and does not help much those that are responsible for the security of server deployments,” Gowdiak said via email.
“Oracle states that the ‘the vulnerability is not applicable to Java deployments [...] that load and run only trusted code’. The truth is that these environment can be at risk under certain circumstances,” the researcher explained. “This is especially true if a given environment allows for any of the following: 1) class definitions to originate from arbitrary WWW servers (http and https URLs in particular); 2) custom Class Loaders (custom subclasses of java.lang.ClassLoader class), which is the case for Google App Engine for Java.”
*Updated to clarify that Java SE 7 Update 99 also patches the issue