Security researchers from Polish vulnerability research firm Security Explorations claim to have identified a new vulnerability in Java 7 that could allow attackers to bypass the software’s security sandbox and execute arbitrary code on the underlying system.
The vulnerability was reported Thursday to Oracle along with proof-of-concept (PoC) exploit code, said Adam Gowdiak, the CEO and founder of Security Explorations, in a message to the Full Disclosure mailing list.
According to Gowdiak, the vulnerability is located in the Reflection API (application programming interface), a feature that was introduced in Java 7 and which has been the source of many critical Java vulnerabilities so far. Security Explorations confirmed that its PoC exploit code works against Java SE 7 Update 25 and earlier versions, he said.
The new issue identified by Security Explorations can allow hackers to implement a “classic” attack that has been known for at least 10 years, Gowdiak said.
This kind of attack used to affect the Java virtual machine (VM) in its early days, in the late ‘90s, he said via email.
“It’s one of those risks one should protect against in the first place when new features are added to Java at the core VM level,” Gowdiak said. It is surprising to discover that protection against this type of attack was not implemented for the Reflection API when Java 7 was being developed, he said.
The researcher claims that the vulnerability allows attackers to violate a fundamental Java VM security feature—the safety of its type system.
“As a result of the attack, one can conduct arbitrary cast operations between Java data types like an integer and a pointer,” he said via email. “In Java, cast operations need to follow strict rules, so that memory is accessed in a safe way.”
Gowdiak has criticized the implementation of the Reflection API in the past, saying that the feature doesn’t seem to have been subjected to a thorough security review.
He believes that the presence of this new vulnerability in Java 7 raises questions about the effectiveness of Oracle’s software security assurance and security-code review practices. “A huge pile of bugs go undetected by these policies and procedures,” he said.
At the end of May, Nandini Ramani, Oracle’s vice president of engineering for the Java Client and Mobile Platforms, reaffirmed in a blog post the company’s commitment to strengthening the security of Java.
“The Java development team has expanded the use of automated security testing tools, facilitating regular coverage over large sections of Java platform code,” Ramani said at the time. The team worked with Oracle’s primary provider of source-code analysis services to make those tools more effective in the Java environment and developed so-called “fuzzing” analysis tools to weed out certain types of vulnerabilities, she said.
“Sophisticated analysis tools should not miss simple Reflection API flaws,” Gowdiak said. “That should speak for itself.”