
CVE-2023-49438 - Flask-Security-Too में ओपन रीडायरेक्ट भेद्यता

पायथन पैकेज Flask-Security-Too <=संस्करण 5.3.2 में एक ओपन रिडायरेक्ट भेद्यता हमलावरों को /login और /register रूट्स पर ?next पैरामीटर का दुरुपयोग करके एक क्राफ्टेड URL के माध्यम से अनजान उपयोगकर्ताओं को दुर्भावनापूर्ण साइटों पर रिडायरेक्ट करने की अनुमति देती है।
Flask-Security-Too में यह सत्यापित करने का तर्क है कि next पैरामीटर में निर्दिष्ट URL या तो सापेक्ष है या अनुरोध करने वाले URL के समान नेटवर्क स्थान रखता है। यह ओपन रिडायरेक्शन को रोकने के प्रयास में किया गया है।
Flask-Security-Too पायथन पैकेज पहले भेद्य पाया गया था मौजूदा सत्यापन तर्क को बायपास करने के लिए, और संस्करण 4.1.0 ने पहले से ज्ञात उदाहरणों जैसे https://example/login?next=\\\github.com को पैच किया था।
हालाँकि, एक वर्कअराउंड खोजा गया है क्योंकि वेब ब्राउज़र URL में स्लैश को सामान्य (normalize) करते हैं, जो पैकेज को संस्करण <=5.3.2 तक भेद्य बनाता है।
https://example/login?next=/\github.comhttps://example/login?next=\/github.comयह पहले CVE-2021-32618 में नोट किया गया था कि "यदि Werkzeug को WSGI परत के रूप में उपयोग किया जाता है (जो Flask अनुप्रयोगों के साथ बहुत आम है), तो यह डिफ़ॉल्ट रूप से हमेशा सुनिश्चित करता है कि Location हेडर निरपेक्ष (absolute) है - इस प्रकार यह हमले के वेक्टर को निष्प्रभावी बनाता है।"
हालाँकि, Werkzeug >=2.1.0 के साथ autocorrect_location_header कॉन्फ़िगरेशन को False में बदल दिया गया - जिसका अर्थ है कि रिडायरेक्ट में location हेडर डिफ़ॉल्ट रूप से सापेक्ष (relative) होते हैं। इस प्रकार, यह समस्या उन अनुप्रयोगों को प्रभावित कर सकती है जो पहले प्रभावित नहीं थे, यदि वे WSGI परत के रूप में Werkzeug >=2.1.0 का उपयोग कर रहे हैं।
pip install -U Flask-Security-Too
या
app.config['SECURITY_REDIRECT_VALIDATE_MODE'] = "regex"
app.config['SECURITY_REDIRECT_VALIDATE_RE'] = r"^/{4,}|\\{3,}|[\s\000-\037][/\\]{2,}(?![/\\])|[/\\](https://github.com/brandon-t-elliott/cve-2023-49438/blob/HEAD/%5B%5E/%5C%5C%5D%7C/%5B%5E/%5C%5C%5D)*[/\\].*"
या
@app.after_request
def fix_location_header(response):
response.autocorrect_location_header = True
return response
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-49438
https://nvd.nist.gov/vuln/detail/CVE-2023-49438
वर्कअराउंड Brandon T. Elliott द्वारा खोजा गया, नवंबर 2023