LiveActive security incident?Get immediate response
CVE Record

CVE-2021-32618: Open Redirect Vulnerability

The Python "Flask-Security-Too" package is used for adding security features to your Flask application. It is an is an independently maintained version of Flask-Security based on the 3.0.0 version of Flask-Security. All versions of Flask-Security-Too allow 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 is used (which is very common with Flask applications) as the WSGI layer, it 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`.

LowCVSS 3.1Not KEV-listedUpdated
Glexia's TakeAutomated analysislow

Security readout for executives and security teams

Plain-English summary

CVE-2021-32618 is an open redirect weakness in Flask-Security-Too redirect handling. A crafted login-style link could make a trusted application send a user to an attacker-chosen site. Business impact is mainly phishing and trust abuse, not direct server compromise.

Executive priority

Treat as low urgency unless the application is customer-facing, login-heavy, or used in high-trust workflows. Prioritize during normal dependency maintenance, with faster review if custom redirect or WSGI behavior is present.

Technical view

Flask-Security-Too validates the next redirect parameter with Python urlsplit, accepting relative URLs or matching netlocs. Some browsers reinterpret incomplete URLs more permissively, creating external redirects that pass server-side validation. The source rates this low severity because common Werkzeug defaults convert Location headers to absolute URLs, reducing practical exposure.

Likely exposure

Exposure is most likely in Flask applications using Flask-Security-Too/flask-security affected versions and honoring next redirects after successful views. Risk increases if the WSGI stack or application disables Werkzeug's default Location header autocorrection.

Exploitation context

The source requires user interaction and describes phishing-style link abuse through legitimate application URLs. KEV is false, and the provided sources do not report active exploitation or public weaponization.

Researcher notes

Key uncertainty is operational configuration. The source says common Werkzeug behavior makes the attack vector ineffective, but applications can alter that behavior. Validate the deployed stack before concluding exposure.

Mitigation direction

  • Inventory applications using Flask-Security-Too or flask-security affected versions.
  • Check vendor advisory for fixed releases and upgrade where specified.
  • Keep Werkzeug Location header autocorrection enabled where applicable.
  • Review any autocorrect_location_header=False configuration and remove unless justified.
  • Constrain post-authentication redirects to trusted relative or same-origin destinations.

Validation and detection

  • Confirm dependency versions in production and staging environments.
  • Review Flask and WSGI configuration for Location header behavior.
  • Test redirect handling in staging using malformed next parameters.
  • Verify redirects cannot resolve to untrusted external domains.
  • Add regression coverage for post-login redirect validation.
Prepared
Confidence
high
Sources
4

Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.

Potential ATT&CK relevance

Conservative CVE-to-ATT&CK context

These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.

ATT&CK lookup starting points

Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.

cwe · medium confidence lookup

CWE-601: User-session and phishing behavior lookup

Client-side and session-facing weaknesses should be reviewed alongside initial-access and user-execution behaviors. Open the exact CWE lookup page first, then review the ATT&CK searches from that MITRE weakness context. This is a Glexia lookup hint, not an official ATT&CK mapping.

Open ATT&CK lookup
cve · low confidence lookup

CVE-2021-32618 mapping review

Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.

Open ATT&CK lookup
Vulnerability profileCVE Program record
Severity
Low
CVSS
3.1 (3.1)
Known Exploited
No
Published

Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N

Official CVE source material

CNA and ADP enrichment extracted from CVE v5

These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.

1CVSS vectors
0Timeline events
0ADP providers
3Source links

CVSS vector scores

1 official score

We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.

ScoreVersionSeverityVectorExploitImpactSource
3.1CVSS 3.1LowCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N1.61.4Primary CVE score

Vulnerability scoring details

Base CVSS 3.1 score

3.1Low
CVSS 3.1 vector shape for CVE-2021-32618Attack VectorAttack ComplexityPrivileges RequiredUser InteractionScopeConfidentiality ImpactIntegrity ImpactAvailability Impact

Vector: CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:L/A:N

Attack Vector
NetworkAdjacentLocalPhysical
Attack Complexity
LowHigh
Privileges Required
NoneLowHigh
User Interaction
NoneRequired
Scope
ChangedUnchanged
Confidentiality Impact
HighLowNone
Integrity Impact
HighLowNone
Availability Impact
HighLowNone
Affected products

Products and packages named in the record

VendorProductVersion / packageStatus
Flask-Middlewareflask-security<= 4.0.1Listed
Weakness

CWE details

CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.

CWE-601 · source CWE mapping

URL Redirection to Untrusted Site ('Open Redirect')

URL Redirection to Untrusted Site ('Open Redirect') represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.