
CVE-2024-29296 - تعداد المستخدمين على Portainer CE - 2.19.4
تم العثور على ثغرة تعداد المستخدمين في Portainer CE 2.19.4. تحدث هذه المشكلة أثناء عملية مصادقة المستخدم، حيث يمكن أن يسمح الاختلاف في وقت الاستجابة لمهاجم غير موثوق عن بُعد بتحديد ما إذا كان اسم المستخدم صالحًا أم لا.
تم إصلاح هذه الثغرة من خلال المشكلة #11736 الخاصة بـ Portainer، والتي تم تضمينها في إصدارات Portainer CE 2.19.5 و2.20.2.
اكتشفت هذه الثغرة أثناء محاولتي تنفيذ هجوم رش كلمات المرور على صفحة تسجيل الدخول لمثيل Portainer. أرسلت عدة طلبات بأسماء مستخدمين وكلمات مرور مختلفة إلى نموذج تسجيل الدخول لتطبيق Portainer.
بغض النظر عن وجود المستخدم، إذا كان اسم المستخدم + كلمة المرور غير صحيحين، يستجيب الجزء الخلفي من تطبيق Portainer بنفس رمز حالة HTTP. يتوافق هذا مع أفضل نهج لمنع - أو إعاقة - محاولات تعداد المستخدمين الصالحين.
ومع ذلك، بالنظر إلى نتائج رش كلمات المرور، لاحظت أن محاولات تسجيل الدخول لبعض أسماء المستخدمين تستغرق باستمرار وقتًا متوسطًا معينًا، بينما تستغرق محاولات تسجيل الدخول لأسماء مستخدمين أخرى وقتًا متوسطًا أكبر بشكل ملحوظ.
يجب على النظام التحقق من صحة كلمة المرور للمستخدمين الموجودين، لكنه لا يحتاج إلى ذلك إذا كان اسم المستخدم غير صالح في المقام الأول. لذلك، افترضت أن التغيير الملحوظ في متوسط وقت محاولة تسجيل الدخول له علاقة بذلك. ثم تابعت تثبيت نسخة محلية من Portainer CE 2.19.4 وحاولت تكرار السلوك، بنفس النتيجة.
هذا هو تنسيق الطلب الذي أرسلته. تم اختيار حقلي اسم المستخدم وكلمة المرور لإدخال الأحمال.

هؤلاء هم المستخدمون الذين أدخلتهم في حقل اسم المستخدم. في هذا الاختبار، كان المستخدمان "admin" و "felipe" فقط صالحين. جميع أسماء المستخدمين الأخرى في القائمة لم تتوافق مع مستخدمين موجودين.

وكانت هذه كلمات المرور التي أدخلتها في حقل كلمة المرور.

تم إرسال طلب إلى الخادم لكل زوج فريد من اسم المستخدم وكلمة المرور. النتائج موضحة أدناه.

عندما يتوافق اسم المستخدم مع مستخدم موجود، تستغرق محاولات تسجيل الدخول باستمرار وقتًا أطول بشكل ملحوظ مقارنة بمحاولات تسجيل الدخول للمستخدمين غير الموجودين.
هذا يعني أن نظام Portainer في هذا الإصدار عرضة لتعداد المستخدمين الصالحين - من خلال النظر إلى الوقت الذي يستغرقه الجزء الخلفي للاستجابة لمحاولات تسجيل الدخول، يمكن للمهاجم تعداد مستخدمي التطبيق.