Security readout for executives and security teams
Plain-English summary
Flask-AppBuilder versions before 3.3.0 can leak whether a username exists during database login because responses take measurably different time. This is not account takeover by itself, but it can help attackers build valid user lists for phishing, password guessing, or follow-on attacks.
Executive priority
Treat this as a moderate-priority hygiene fix. It is unlikely to be an emergency alone, but exposed authentication portals should be upgraded promptly because user enumeration improves attackers’ odds in credential-based campaigns.
Technical view
CVE-2021-29621 is a CWE-203 observable response discrepancy in Flask-AppBuilder database authentication. An unauthenticated remote user may infer existing accounts through login response timing. The affected range is Flask-AppBuilder below 3.3.0, with CVSS 3.1 score 5.3 for low-confidentiality impact only.
Likely exposure
Exposure is most likely where applications use Flask-AppBuilder before 3.3.0 with database authentication and a reachable login page. Dependency inventory is needed because Flask-AppBuilder may be used directly or as an application dependency.
Exploitation context
The bundle does not show CISA KEV listing or active exploitation evidence. The issue is remotely reachable and low complexity, but the documented impact is user enumeration, not direct privilege escalation, data modification, or service disruption.
Researcher notes
The core evidence identifies a timing-based user enumeration flaw fixed by upgrading to 3.3.0 or later. The public bundle does not establish exploit activity, proof-of-concept details, or broader product impact beyond Flask-AppBuilder and referenced downstream discussion.
Mitigation direction
- Upgrade Flask-AppBuilder to version 3.3.0 or higher.
- Confirm application dependency constraints allow the patched version.
- Reduce public exposure of administrative login pages where operationally feasible.
- Review vendor and downstream project guidance before applying compensating controls.
- Prioritize systems where valid usernames increase phishing or credential attack risk.
Validation and detection
- Check package manifests and lockfiles for Flask-AppBuilder below 3.3.0.
- Identify deployments using Flask-AppBuilder database authentication.
- Confirm internet or untrusted-network reachability of affected login routes.
- Review authentication logs for unusual username probing patterns.
- After upgrade, verify the deployed package version is 3.3.0 or higher.
Public sources used
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
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-203: Information exposure and cloud metadata lookup
Information exposure and SSRF weaknesses can make discovery, cloud metadata, and credential material review relevant. 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 lookupDatabase behavior lookup
The CVE wording references database injection or access, so collection and exfiltration review may help. This is a Glexia inferred lookup path, not an official MITRE, ATT&CK, or CVE Program mapping.
Open ATT&CK lookupCVE-2021-29621 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
Open ATT&CK lookup- Severity
- Medium
- CVSS
- 5.3 (3.1)
- Known Exploited
- No
- Published
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
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.
CVSS vector scores
1 official scoreWe 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.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N3.91.4Primary CVE scoreVulnerability scoring details
Base CVSS 3.1 score
5.3MediumVector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Source materials
- CVE List V5 sourceCVE List V5
- https://github.com/dpgaspar/Flask-AppBuilder/security/advisories/GHSA-434h-p4gx-jm89CVE reference · x_refsource_CONFIRM
- https://github.com/dpgaspar/Flask-AppBuilder/commit/780bd0e8fbf2d36ada52edb769477e0a4edae580CVE reference · x_refsource_MISC
- https://pypi.org/project/Flask-AppBuilder/CVE reference · x_refsource_MISC
- [announce] 20210618 Apache Airflow CVE: CVE-2021-29621: User enumeration in database authentication in Flask-AppBuilder <= 3.2.3.CVE reference · mailing-list, x_refsource_MLIST
- [announce] 20210623 Success at Apache: Security in PracticeCVE reference · mailing-list, x_refsource_MLIST
- [airflow-commits] 20210712 [GitHub] [airflow] ashb commented on pull request #16942: Relax version constraint on ``Flask-Appbuilder``CVE reference · mailing-list, x_refsource_MLIST
Products and packages named in the record
CWE details
CWE links open Glexia weakness intelligence pages with official CWE context, developer remediation guidance, and related CVE mappings.
Observable Discrepancy
Observable Discrepancy represents a recurring weakness pattern that can create exploitable paths when design, validation, or implementation controls are missing.
