Low

Open Redirect in Flask-Security-Too

  • Disclosed: 17.05.2021
  • Updated: 11.10.2026 11:20

Impact

Flask-Security allows redirects after many successful views (e.g. /login) by honoring the ?next query param. There is code in FS to validate that the url specified in the next parameter is either relative OR has the same netloc (network location) as the requesting URL.

This check utilizes Pythons urlsplit library. However many browsers are very lenient on the kind of URL they accept and 'fill in the blanks' when presented with a possibly incomplete URL. As a concrete example - setting http://login?next=\\github.com will pass FS's relative URL check however many browsers will gladly convert this to http://github.com. Thus an attacker could send such a link to an unwitting user, using a legitimate site and have it redirect to whatever site they want.

This is considered a low severity due to the fact that if Werkzeug by default ALWAYS ensures that the Location header is absolute - thus making this attack vector mute. It is possible for application writers to modify this default behavior by setting the 'autocorrect_location_header=False` which would then open up their application to this attack.

Patches

No patches as this time

Workarounds

If using Werkzeug, make sure to use the default Location header setting. If you can't - then use@app.after_request and write your own validation of the Location header if it is set.

References

No.

For more information

If you have any questions or comments about this advisory follow: https://github.com/Flask-Middleware/flask-security/issues/486

Thanks to Claroty (2021-0141) and @snoopysecurity for providing details and proof of concept.

Affected software

Click a technology to see all vulnerabilities affecting it.

PlatformPackageVulnerable versionsFixed in
Python (PyPI) flask-security-too < 4.1.0 4.1.0

References

CVSS score 3.1/10
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N
Weakness (CWE)
CWE-601
Platform
Python (PyPI)
Package
flask-security-too
Disclosed
17.05.2021
Updated
11.10.2026 11:20

Sources and licenses

OSV / GitHub Advisory Database - PYSEC-2021-123 - PyPA Advisory Database; CC BY 4.0

OSV / GitHub Advisory Database - GHSA-6qmf-fj6m-686c - CC BY 4.0

Vulnerability history: flask-security-too

All published vulnerabilities of this package (Python (PyPI)), newest first. Shows whether this is a one-off slip or a package that needs watching.

Total entries
6
First → latest
01.2021 07.2026
Without a fix
1
Exploited in attacks
0

Severity breakdown

  • High 1
  • Medium 3
  • Low 2

Disclosures per year

  1. 2021: 3
  2. 2022: 0
  3. 2023: 1
  4. 2024: 0
  5. 2025: 0
  6. 2026: 2
  1. Open Redirect in Flask-Security-Too this entry
    Low · 3.1 CVE-2021-32618 < 4.1.0 4.1.0
  2. Low ghsa-fxq4-r6mr-9x64 >= 3.2.0, < 3.4.5 3.4.5
  3. High · 7.4 CVE-2021-21241 >= 3.3.0, < 3.4.5 3.4.5

Know which vulnerabilities affect your application

With the DockRay integration and software inventory enabled, DockRay checks reported component versions against known vulnerabilities and notifies you about confirmed matches. Coverage depends on the supported technology and available advisory data.

Connect your application
DockRay newsletter

Application security in your inbox

Important vulnerabilities, actionable guidance and practical advice for your applications. Choose your technologies and follow what matters to your project.

  • A daily digest of new vulnerabilities, critical ones included.
  • Notifications about important updates.
  • Practical advice on application security and monitoring.

Leave empty to receive updates for every technology.

Free to subscribe. Unsubscribe with one click in any email.