Last week, Oracle released Java 7 update 21, which patched 42 new vulnerabilities. Come Monday, however, a security researcher warned that he'd discovered a reflection API vulnerability in the newly shipped Server Java Runtime Environment (JRE).
"The new flaw was verified to affect all versions of Java SE 7 (including the recently released 1.7.0_21-b11)," said veteran Java bug hunter Adam Gowdiak, CEO and founder of Poland-based Security Explorations, in a Monday post to the Full Disclosure mailing list. "It can be used to achieve a complete Java security sandbox bypass on a target system. Successful exploitation in a Web browser scenario requires proper user interaction (a user needs to accept the risk of executing a potentially malicious Java application when a security warning window is displayed)." Gowdiak said he filed a bug report -- including proof-of-concept exploit code -- with Oracle Monday, according to a Security Explorations vulnerability log.
[ Are you a WordPress user? Read WordPress Hackers Exploit Username 'Admin'. ]
The vulnerability could be used to escape the Java sandbox and execute arbitrary code on a client or server, although for a client-side attack, a user would have to allow a malicious application that exploits the vulnerability to run.
Java reflection API vulnerabilities have been an ongoing challenge for Oracle. The vulnerabilities involve tricking a challenge-response security system into revealing the answer to its own challenge. But this bug is a little different. "What's interesting is that the new issue is present not only in JRE Plugin / JDK software, but also the recently announced Server JRE as well," Gowdiak said.
First released last week with Java 7 update 21, Oracle describes Server JRE -- available for 64-bit Linux, Solaris and Windows systems -- as "a runtime environment specifically targeted for deploying Java in server environments ... [that] includes tools for JVM monitoring and tools commonly required for server applications, but does not include browser integration (the Java plug-in)."
But could attackers easily compromise vulnerabilities in Server JRE? Although Gowdiak hasn't publicly revealed any further details of the vulnerability he discovered, he did note that anyone questioning how a server-side flaw might be exploited should refer to Oracle's "Secure Coding Guidelines for a Java Programming Language" (section 3-8), which warns: "Take care interpreting untrusted code." The guidelines also say that "code can be hidden in a number of places," and that unless code has been validated, it should be restricted to a sandbox. Finally, it warns that Java components -- or APIs -- that might be used to introduce untrusted code include SQL. "Many SQL implementations allow execution of code with effects outside of the database itself," said Oracle.
Other potential untrusted code introduction -- or attack -- vectors include remote method invocation (RMI) and LDAP code loading, JavaBeans components, and the Sun implementation of the XSLT interpreter, which "enables extensions to call Java code," according to Oracle, although this feature can be disabled.
Despite the new Java bug warning, Oracle has been stepping up the pace of its Java patching efforts, releasing five Java 7 updates since the start of 2013, as well as a new malicious application warning system for suspicious Java applications. That security work, however, last week led the company's lead Java architect to call for the release of Java 8 to be delayed, so sufficient resources could continue to be devoted to better securing Java 7.