التحذير من ثغرة في نظامي Mysql وMariaDB تمكن من الولوج إلى قواعد البيانات من دون الحاجة إلى معرفة كل
قام الباحث Sergei Golubchik بنشر تفاصيل ثغرة أمنية في MySQL وقواعد MariaDB عبر القائمة البريدية لـ oss-sec وذلك بعيد إصلاح الثغرة من قبل الشركة التي حملت الرقم CVE-2012-2122.قام الباحث Sergei Golubchik بنشر تفاصيل ثغرة أمنية في MySQL وقواعد MariaDB عبر القائمة البريدية لـ oss-sec وذلك بعيد إصلاح الثغرة من قبل الشركة التي حملت الرقم CVE-2012-2122. تم استغلال هذه الثغرة بعد إيجاد خلل في النتيجة المتوقعة للتابع memcmp() والذي يُعيد نتيجة تتراوح في المجال [-127, 127] أو مجال (بمعنى آخر) signed character. في بعض المنصات وضمن شروط معينة، يمكن لهذا التابع أن يعيد قيمة خارج المجال المذكور، مما يؤدي إلى الحصول على نتيجة true للشفرة التي تقوم مثلاً بمقارنة hashed passwords حتى عند إدخال كلمة مرور خاطئة. وبما أن بروتوكول المصادقة يقوم بتوليد قيمة hash مختلفة في كل مرة تتم فيها المصادقة، فإن هناك احتمال 1 من أصل 256 يعني أن أي كلمة مرور ستتجاوز مرحلة المصادقة بنجاح. ولكن ما علاقة ما سبق بـ MySQL ؟ العلاقة يا سيدي أنه لو قام المهاجم بالمصادقة مع MySQL فهناك احتمال أن يتمكن من تسجيل الدخول باستخدام كلمة مرور خاطئة، وفيما يلي سطر واحد يمكن استخدامه في bash (سطر الأوامر) في نظام Linux لتسجيل الدخول كمستخدم root على MySQL وبدون معرفة كلمة المرور الصحيحة: $ for i in `seq 1 1000`; do mysql -u root –password=bad -h 127.0.0.1 2>/dev/null; done مدى انتشار الخلل: على الرغم من أن الكثير من إصدارات MySQL و MariaDB تحتوي على الخلل المذكور، إلا أن بعض هذه الأنظمة فقط قابلة للاستغلال، ويعود السبب إلى القيمة التي يعيدها التابع memcmp() فيما إذا كانت خارج المجال المطلوب. في الوضع الافتراضي فإن هذه الحالة الحرجة غير ممكنة، ولكن الاستثناء الأكبر هو في حالة استخدام GCC مع معايير التحسين SSE optimization أثناء الـ compilation، هذا وقد قام الباحث Joshua Drake بنشر الشفرة المصدرية لبرنامج قادر على تحديد فيما إذا كان النظام مصاباً أم لا. حتى الآن، فقد تم تحديد أن الأنظمة التالية مصابة فعلاً بهذا الخلل:
بينما أظهرت التعليقات التي وصلت لفريق عمل Metasploit، أن الأنظمة التالية غير مصابة:
وبالطبع، فإننا نذكر الأعزاء القراء بأنه حتى لو قمتم بإصلاح الثغرة في أنظمتكم، فلا تنسوا تغيير كلمات المرور والتي ربما تكون ضعيفة وقد تم كسر الـ hash الخاص بها للوصول لكلمة المرور الحقيقية. |