From a4b8b494b28ef3d446527d93186e18360a5aa1e7 Mon Sep 17 00:00:00 2001 From: Lukas Arnold <lukas.arnold@stud.tu-darmstadt.de> Date: Mon, 20 Jun 2022 11:11:22 +0200 Subject: [PATCH] Explains the choice of the used LDAP approach in more detail --- .../src/main/java/de/seemoo/netsec/AttackInterceptor.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/ldap/src/main/java/de/seemoo/netsec/AttackInterceptor.java b/ldap/src/main/java/de/seemoo/netsec/AttackInterceptor.java index 52398e9..fae77ef 100644 --- a/ldap/src/main/java/de/seemoo/netsec/AttackInterceptor.java +++ b/ldap/src/main/java/de/seemoo/netsec/AttackInterceptor.java @@ -44,14 +44,16 @@ public class AttackInterceptor extends InMemoryOperationInterceptor { // Another approach would be to exploit (de-)serialization of objects which is also supported by LDAP, // but for this the system property 'com.sun.jndi.ldap.object.trustURLCodebase' must // have been set to 'true' for almost all Java versions. + // You can read more about it on https://www.innoq.com/en/articles/2022/04/java-jndi/. + // However, the approach can be used in combination with certain classes of libraries for RCE attacks. + // Those classes are also called gadgets, read more about it on: https://github.com/mbechler/marshalsec. - // Other approach: https://www.innoq.com/en/articles/2022/04/java-jndi/ - - // With this approach, it's not required to set the property for Java version <= 8u191. + // With the factory approach, it's not required to set the property for Java version <= 8u191. // https://news.ycombinator.com/item?id=29505027 // https://www.lunasec.io/docs/blog/log4j-zero-day/ // We've confirmed this with JDK & JRE 1.8.0u111 available at // https://www.oracle.com/de/java/technologies/javase/javase8-archive-downloads.html + // We suppose the problem is caused by CVE 2018-3149: https://bugzilla.redhat.com/show_bug.cgi?id=1639834. try { // Sends the newly generated malicious entry back to the requester -- GitLab