
تحديد معدل TOTP المرتبط بالجلسة يسمح بمحاولات تحقق متكررة
خزّنت إصدارات FileRise السابقة للإصدار 3.23.0 محاولات التحقق الفاشلة من TOTP في حالة جلسة PHP. كان العدّاد يحدّ من المحاولات ضمن الجلسة الواحدة لكنه لم يكن يستمر عبر الجلسات المُنشأة حديثًا.
كان بإمكان المهاجم الذي يمتلك بالفعل بيانات الاعتماد الأساسية الصالحة لحساب مستهدف إعادة تشغيل سير عمل تسجيل الدخول، والحصول على جلسة تسجيل دخول معلّقة جديدة، واستعادة السماح بمحاولات TOTP. أتاحت إعادة هذه العملية مواصلة تخمين TOTP عبر الإنترنت بما يتجاوز الحد المقصود البالغ خمس محاولات.
حافظ تدفق التحقق من TOTP على عدّاد الإخفاقات في $_SESSION. بعد خمس محاولات فاشلة، أعادت المحاولات الإضافية في تلك الجلسة رمز HTTP 429.
ومع ذلك، أدى إكمال المصادقة الأساسية بنجاح في جلسة جديدة إلى إنشاء حالة تسجيل دخول معلّقة جديدة مع عدّاد إخفاقات TOTP جديد. وبالتالي لم تُنقل إخفاقات TOTP الخاصة بالحساب السابق.
أثّر هذا الخلل أيضًا على معالج TOTP آخر لتسجيل الدخول المعلّق لم يكن يفرض الحد الدائم نفسه. ونتيجة لذلك، طُبّق الإصلاح مركزيًا عبر جميع مسارات التحقق من TOTP لتسجيل الدخول المعلّق.
صُنّف هذا الخلل ضمن CWE-307: التقييد غير السليم لمحاولات المصادقة المفرطة.
يتطلب الاستغلال امتلاك بيانات الاعتماد الأساسية الصالحة للحساب المستهدف، مثل كلمة مرور تم الحصول عليها عبر إعادة استخدام بيانات الاعتماد أو التصيّد الاحتيالي أو أي اختراق آخر.
لا يكشف الخلل عن بيانات الاعتماد ولا يتجاوز TOTP فورًا. إنه يسمح بمواصلة تخمين TOTP الآلي دون حد دائم على مستوى الحساب. تؤدي أي تخمين ناجح إلى إكمال المصادقة بصلاحيات الحساب المتأثر، والتي قد تشمل صلاحيات المسؤول.
الحسابات التي لم يُفعّل فيها TOTP غير متأثرة بهذه المشكلة المحددة المتعلقة بتحديد معدل عامل المصادقة الثاني.
يقدّم FileRise 3.23.0 تحديدًا مركزيًا ودائمًا لمحاولات TOTP:
لا تتطلب الحسابات الحالية، وأسرار TOTP، والجلسات، وتثبيتات Docker، وتكوين النشر أي ترحيل.
ينبغي للمستخدمين الترقية إلى FileRise 3.23.0 أو أحدث.
شكرًا لك على الإفصاح المسؤول وخطوات إعادة الإنتاج التفصيلية.
راجعنا سير عمل التحقق من TOTP وأكّدنا المشكلة الأساسية. كانت محاولات TOTP الفاشلة محدودة فقط بعدّاد جلسة PHP في نقطة نهاية التحقق الرئيسية للواجهة الأمامية. لذلك كان تكرار خطوة المصادقة الأساسية الناجحة في جلسة جديدة قادرًا على استعادة ميزانية محاولات عامل المصادقة الثاني. حدّدت مراجعتنا أيضًا معالج TOTP آخر لتسجيل الدخول المعلّق لم يكن يطبّق عدّاد المحاولات نفسه، لذا طُبّق الإصلاح مركزيًا عبر مسارات التحقق بدلًا من نقطة النهاية المُبلَّغ عنها فقط.
نُفّذ الإصلاح في FileRise v3.23.0:
حد الحساب هو خمس محاولات في نافذة مدتها 15 دقيقة. حد المصدر أعلى عمدًا عند 50 محاولة في النافذة نفسها لتقليل الإيجابيات الكاذبة للشبكات المشتركة. لا تتطلب الحسابات الحالية، وأسرار TOTP، والجلسات، وتثبيتات Docker، وتكوين النشر أي ترحيل.
Credit: Pervin Zahidli (@ech0void ) Ref : https://github.com/error311/FileRise/security/advisories/GHSA-4hfj-6478-5cv7