
يعيد إنتاج وتحليل CVE-2026-3494، وهو تجاوز لتدقيق السجلات في إضافة server_audit الخاصة بـ MariaDB، باستخدام اختبار متعدد الإصدارات قائم على Docker لمقارنة سلوك التسجيل عبر الإصدارات المعرضة للخطر والإصدارات المُصححة.
يوفر هذا المشروع بيئة متخصصة للتحقق وتحليل تجاوز محتمل لتسجيل التدقيق في إضافة server_audit الخاصة بـ MariaDB عند استخدام تعليقات سطرية محددة (#, --) داخل استعلامات SQL.
SET PASSWORD مع تعليقات أو حالات Error 1046) لا يتم تسجيلها في سجل التدقيق في MariaDB v11.8.6، والذي كان يُعتبر سابقًا إصدارًا مُصححًا.#) في معالجة عبارات DCL بشكل غير صحيح أو تجاهلها من قبل المدقق.server_audit مع عوامل تصفية مثل QUERY_DCL وQUERY_DDL وQUERY_DML، قد تتجاوز بعض الاستعلامات التي تحتوي على تعليقات سطرية آلية التسجيل.توضح المصفوفة التالية سلوك التسجيل الملحوظ أثناء الاختبار:
[MariaDB 10.3.39 / 11.8.5]
- الحالة #1, #2A, #2B, #3, #4 ← جميعها مسجلة (سلوك طبيعي)
[MariaDB 11.8.6 (الإصدار المستهدف)]
- الحالة #2B (خطأ 1046) ← غير مسجلة (إغفال التسجيل) ❗
- الحالة #3 (SET PASSWORD مع تعليق) ← غير مسجلة (إغفال التسجيل) ❗
- الحالة #1, #2A, #4 ← مسجلة (سلوك طبيعي)
يستخدم هذا المشروع Docker Compose لتشغيل ثلاث نسخ معزولة من MariaDB:
| الإصدار | المنفذ | الحالة | الوصف |
|---|---|---|---|
| MariaDB 10.3.39 | 3306 | قابل للاستغلال | التحقق من الإصدار المستقر القديم |
| MariaDB 11.8.5 | 3307 | قابل للاستغلال | التحقق من أحدث إصدار قابل للاستغلال |
| MariaDB 11.8.6 | 3308 | المستهدف | تقييم التغييرات الأخيرة في تسجيل التدقيق |
قم ببناء وتشغيل حاويات MariaDB. تقوم البيئة تلقائيًا بتكوين إضافة server_audit وتهيئة مستخدمي الاختبار.
# بناء وتشغيل الحاويات
docker compose up --build -d
# التحقق من حالة الحاويات
docker ps
قم بتثبيت تبعيات Python المطلوبة:
pip install pymysql
يمكن تنفيذ البرنامج النصي من أي دليل داخل المشروع.
python poc/poc.py
يقوم PoC بتنفيذ 5 سيناريوهات متميزة:
SET PASSWORD مع تعليق # مضمّن (فحص التجاوز).SELECT مع تعليق # مضمّن (فحص التجاوز).LOGGED: تم تسجيل الاستعلام بنجاح في سجل التدقيق.NOT LOGGED: تم إغفال الاستعلام من السجل (تجاوز محتمل أو انحدار).>> Actual Log: يعرض الإدخال الخام من server_audit.log باللون الأزرق للتحقق من سلامة العبارة المسجلة.فيما يلي سجلات التنفيذ الفعلية التي توضح الفرق بين السلوك المتوقع (11.8.5) وإغفال التسجيل (11.8.6).
[+] TEST_CASE_2_B_ERROR_1046
النتيجة: LOGGED
>> السجل الفعلي: | 20260504 04:45:05,...,QUERY,mysql,'SELECT * FROM user',1046
[+] TEST_CASE_3_COMMENT_SET_PASSWORD
النتيجة: LOGGED
>> السجل الفعلي: | 20260504 04:45:07,...,QUERY,mysql,'SET PASSWORD # CVE-2026-3494 Test ...',1133
[+] TEST_CASE_2_B_ERROR_1046 (لم يتم تحديد قاعدة بيانات)
النتيجة: NOT LOGGED <-- تم اكتشاف الإغفال
[+] TEST_CASE_3_COMMENT_SET_PASSWORD (تعليق سطري #)
النتيجة: NOT LOGGED <-- تم اكتشاف الإغفال
[!TIP] للحصول على المخرجات الطرفية الكاملة لجميع حالات الاختبار والإصدارات، راجع سجل التنفيذ الكامل.
.
├── config/ # تكوين server_audit الخاص بـ MariaDB
├── init/ # سكريبتات التهيئة (إعداد المستخدم والإضافة)
├── logs/ # وحدات تحميل حجم سجل التدقيق
├── poc/
│ └── poc.py # سكريبت التحقق الآلي
├── results/
│ └── full_execution_log.md # سجلات المخرجات الطرفية التفصيلية
├── docker-compose.yml # تعريف بيئة الإصدارات المتعددة
└── README.md # توثيق المشروع (الملف الحالي)
هذا المشروع مخصص لأغراض تعليمية وبحوث أمنية فقط. استخدمه بمسؤولية ولا تطبق هذه التكوينات على بيئات الإنتاج دون اختبار شامل.