Open Redirect Affecting flask-security-too package, versions [,5.3.3)


Severity

0.0
medium
0
10

    Threat Intelligence

    Exploit Maturity
    Proof of concept
    EPSS
    0.06% (27th percentile)

Do your applications use this vulnerable package?

In a few clicks we can analyze your entire application and see what components are vulnerable in your application, and suggest you quick fixes.

Test your applications
  • Snyk ID SNYK-PYTHON-FLASKSECURITYTOO-6139926
  • published 27 Dec 2023
  • disclosed 26 Dec 2023
  • credit Brandon T. Elliott

How to fix?

Upgrade Flask-Security-Too to version 5.3.3 or higher.

Overview

Affected versions of this package are vulnerable to Open Redirect via the the /login and /register routes, using the ?next parameter.

Note:

With Werkzeug >=2.1.0 the autocorrect_location_header configuration was changed to False - which means that location headers in redirects are relative by default. Thus, this issue may impact applications that were previously not impacted, if they are using Werkzeug >=2.1.0 as the WSGI layer.

Workaround

Adding these configuration options to your app will mitigate all currently known examples:

app.config['SECURITY_REDIRECT_VALIDATE_MODE'] = "regex"

app.config['SECURITY_REDIRECT_VALIDATE_RE'] = r"^/{4,}|\\{3,}|[\s\000-\037][/\\]{2,}(?![/\\])|[/\\]([^/\\]|/[^/\\])*[/\\].*"

Note: The vulnerability present in this library and represented by CVE-2021-32618, was insufficiently assessed and a case was missed, leading to the current vulnerability. The fix commit from this advisory is strictly for this library.

PoC

https://example/login?next=/\github.com

https://example/login?next=\/github.com

CVSS Scores

version 3.1
Expand this section

Snyk

5.4 medium
  • Attack Vector (AV)
    Network
  • Attack Complexity (AC)
    Low
  • Privileges Required (PR)
    None
  • User Interaction (UI)
    Required
  • Scope (S)
    Unchanged
  • Confidentiality (C)
    Low
  • Integrity (I)
    Low
  • Availability (A)
    None
Expand this section

NVD

6.1 medium