A Journey From JNDI/LDAP Manipulation to Remote Code Execution Dream Land
summary
A new class of JNDI vulnerability claims remote code execution via CVE-2015-4902 by abusing dynamic protocol switching so lookups can be pointed at attacker servers. Exploits use RMI/LDAP/CORBA vectors, demo binds an RMI reference to an EclipseLink/TopLink RESTed endpoint and pops a calculator on the server. Spring Security’s LDAP integration (used by ~1,300 Maven artifacts) enables LDAP entry poisoning, attackers inject Java attributes and fetch remote factories. Analysis finds 20+ gadget classes in Oracle JDK, 50+ in OpenJDK, 200+ across app server libraries.
AI-written summary · about
chapters (27)
- 0:00Intro
- 2:23JNDI in a Nutshell
- 3:28JNDI Architecture
- 4:18JNDI In Action
- 5:15JNDI Naming References
- 6:56JNDI Remote Class Loading
- 9:08Attack Process
- 9:36Dynamic Protocol Switching
- 10:37JNDI Vectors
- 12:15RMI Vector: JNDI Reference Payload
- 12:54Previous Research: Click-to-play bypass
- 14:12Previous Research: Deserialization attack
- 20:12CORBA Vector: IOR
- 20:53CORBA Vector: Limitations & Bypasses
- 22:48CORBA Vector: IIOP Listeners
- 23:57CORBA Vector: Deserialization Attacks
- 25:22LDAP Vector
- 26:43Lookup (Naming) vs Search (Directory)
- 27:38Object-Returning Searches
- 28:21Java Object Decoding
- 29:22Java Schema (RFC 2713)
- 29:54Entry Poisoning with Serialized Objects
- 30:49Entry Poisoning with JNDI References
- 33:19Attack Scenarios: Entry Manipulation
- 34:18Attack Scenarios: MITM Tampering
- 38:27Recommendations
- 40:34BlackHat Sound Bytes
related talks
51mNew Exploit Technique In Java Deserialization Attack
33mLog4J, SpringShell and all that Jazz (or why bad things can happen to good software)
40mA New Attack Interface in Java Applications
48mThe Hidden Security Hazards in Your Java Stack
56mThe Anatomy of Java Vulnerabilities
02h 38mJava application security the hard way - a workshop for the serious developer
48mCommon vulnerabilities you wish your Java app didn't have!
45mFar Sides of Java Remote Protocols
