Java vulnerability hunters from Polish security research firm Security Explorations claim to have found a new vulnerability that affects the latest desktop and server versions of the Java Runtime Environment (JRE).
The vulnerability is located in Java's Reflection API component and can be used to completely bypass the Java security sandbox and execute arbitrary code on computers, Adam Gowdiak, the CEO of Security Explorations, said Monday in an email sent to the Full Disclosure mailing list. The flaw affects all versions of Java 7, including Java 7 Update 21 that was released by Oracle last Tuesday and the new Server JRE package released at the same time, he said.
As the name suggests, the Server JRE is a version of the Java Runtime Environment designed for Java server deployments. According to Oracle, the Server JRE doesn't contain the Java browser plug-in, a frequent target for Web-based exploits, the auto-update component or the installer found in the regular JRE package.
Although Oracle is aware that Java vulnerabilities can also be exploited on server deployments by supplying malicious input to APIs (application programming interfaces) in vulnerable components, its message has generally been that the majority of Java vulnerabilities only affect the Java browser plug-in or that the exploitation scenarios for Java flaws on servers are improbable, Gowdiak said Tuesday via email.
"We tried to make users aware that Oracle's claims were incorrect with respect to the impact of Java SE vulnerabilities," Gowdiak said. "We proved that the bugs evaluated by Oracle as affecting only the Java plug-in could affect servers as well."
In February, Security Explorations published a proof-of-concept exploit for a Java vulnerability classified as plug-in-based that could have been used to attack Java on servers using the RMI (remote method invocation) protocol, Gowdiak said. Oracle addressed the RMI attack vector in the Java update last week, but other methods of attacking Java deployments on servers exist, he said.
Security Explorations researchers haven't verified the successful exploitation of the new vulnerability they found against Server JRE, but they listed known Java APIs and components that could be used to load or execute untrusted Java code on servers.
If an attack vector exists in one of the components mentioned in Guideline 3-8 of Oracle's "Secure Coding Guidelines for a Java Programming Language," Java server deployments can be attacked through a vulnerability like the one reported Monday to Oracle, Gowdiak said.
The researcher took issue with the way Reflection API was implemented and audited for security issues in Java 7, because the component has been the source of multiple vulnerabilities so far. "The Reflection API does not fit the Java security model very well and if used improperly it can easily lead to security problems," he said.
This new flaw is a typical example of a Reflection API weakness, Gowdiak said. This vulnerability shouldn't be present in Java 7 code one year after a generic security problem related to Reflection API was reported to Oracle by Security Explorations, he said.