
सत्र-स्कोप्ड 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 इंस्टॉलेशन, और परिनियोजन कॉन्फ़िगरेशन को किसी माइग्रेशन की आवश्यकता नहीं है।
श्रेय: Pervin Zahidli (@ech0void ) संदर्भ: https://github.com/error311/FileRise/security/advisories/GHSA-4hfj-6478-5cv7