HPE Warns of JNDI Java Injection Flaws

By Sean Michael Kerner  |  Posted 2016-08-10 Print this article Print
Java Injection Flaws

You've heard of SQL injection, but HPE has new research into Java server injection flaws that could represent an entirely new attack surface. Here's a deep dive with the lead researcher.

There is a pair of new exploit attack vectors in commonly used enterprise technologies that could be exposing organizations to risks they aren't aware of, according to Hewlett Packard Enterprise. One of the new vectors is a Java Naming and Directory Interface (JNDI) injection risk; the other is a Lightweight Directory Address Protocol (LDAP) entry poisoning risk.

JNDI is widely used by enterprises that have Java middleware servers for enterprise application deployment, while LDAP is used for user roles and access. In a session at the Black Hat USA conference last week, Alvaro Munoz, principal security researcher at HPE, detailed ways in which someone could abuse JNDI and LDAP  to gain remote code execution access.

In an interview with eWEEK, Munoz explained what the real issues are and what can be done to help limit risks. He noted that hackers involved in the so-called "Pawn Storm" attack in 2015 that targeted NATO made use of a zero-day flaw in Java that enabled them to bypass the "click-to-play" feature for Java applets. With such an attack, a drive-by attack was possible, such that users don't need to click on anything to be infected. The attack also made use of what he called JNDI trickery.

"While analyzing the Pawn Storm Java zero-day, we realized that the same tricks could be used in an injection attack against applications that are evaluating or passing data through the JNDI interface," Munoz said.

The JNDI injection attack vector is an attack that in some respects is similar to a SQL injection (SQLi) attack against a database. In SQLi, which is a very common attack vector, unfiltered data queries are passed to a database, which can potentially then enable unauthorized access.

"With JNDI injection, an attacker needs to be able to pass untrusted data into a JNDI API," Munoz said. "If attacker-controlled addresses and names can be injected into a JNDI lookup operation, the attacker will be able to achieve a remote code execution."

In Munoz's view, JNDI injection is a problem for enterprise Java applications that use JNDI, but not for types of Java applications that don't tend to use enterprise APIs.

The other new attack vector that Munoz discovered is called LDAP entry poisoning. If an attacker is able to modify an LDAP entry, Munoz's research shows that the attack could potentially gain remote code execution on any vulnerable application that integrates with the LDAP server.

On the JNDI issue, Oracle recently patched at least one route to exploitation for the vulnerability as part of the company's July Critical Patch Update (CPU) cycle. JNDI injection as a potential attack vector in enterprise applications and potentially in Java middleware servers, however, could still be a risk, in Munoz's view.

As is the case with SQLi, limiting the potential risk from JNDI injection is also a developer responsibility.

"Developers should never pass untrusted data to a JNDI lookup method," Munoz said.

Sean Michael Kerner is a senior editor at eWEEK and InternetNews.com. Follow him on Twitter @TechJournalist.


Submit a Comment

Loading Comments...
Manage your Newsletters: Login   Register My Newsletters

Rocket Fuel