CVE-2022-24857 is a high-severity (CVSS 7.3) Improper Authentication vulnerability in django-mfa3. A fix is available for django-mfa3 — see the affected versions and patch details below.
Multi factor authentication bypass in django-mfa3
EPSS Exploitation Probability
Probability of exploitation in the next 30 days, from FIRST.org EPSS.
How urgent is this, really
Where this sits among everything scored
Real-World Exposure
django-mfa3Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects PyPI packages — download data is not available via public APIs for these ecosystems.
Description
Impact
django-mfa3 is a library that implements multi factor authentication for the django web framework. It achieves this by modifying the regular login view. Django however has a second login view for its admin area. This second login view was not modified, so the multi factor authentication can be bypassed.
You are affected if you have activated both django-mfa3 (< 0.5.0) and django.contrib.admin and have not taken any other measures to prevent users from accessing the admin login view.
Patches
The issue has been fixed in django-mfa3 0.5.0.
Workarounds
It is possible to work around the issue by overwriting the admin login route, e.g. by adding the following URL definition before the admin routes:
url('admin/login/', lambda request: redirect(settings.LOGIN_URL)
References
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐍PyPI | django-mfa3 | all versions | 0.5.0pip install --upgrade 'django-mfa3==0.5.0' |
Affected Products
django-mfa3django-mfa3_projectDetection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for django-mfa3, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update django-mfa3 to 0.5.0 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2022-24857 is resolved across your whole dependency graph.
Workarounds
Put an independent control in front of the weakness: restrict the affected endpoint or interface to trusted networks, require an additional authentication factor or proxy-level check, and invalidate existing sessions and credentials in case the flaw has already been used.
Frequently Asked Questions
Is CVE-2022-24857 in your dependencies?
Find it across PyPI, including transitive dependencies.