CVE-2022-42731 json
django-mfa2 vulnerable to MFA Replay attack
published 2022-10-11 4 y ago modified 2026-06-17 4 mo ago also GHSA-vw39-2wj9-4q86 , PYSEC-2022-303 , EUVD-2022-0080
- cvss
- 7.5
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 1.5%
- EPSS 1.5% chance of exploitation in 30 days, percentile 74%
- public exploits
- 0
- none known
Summary
mfa/FIDO2.py in django-mfa2 before 2.5.1 and 2.6.x before 2.6.1 allows a replay attack that could be used to register another device for a user. The device registration challenge is not invalidated after usage.
Patch / fix
- pypi django-mfa2 2.5.1, 2.6.1
- django-mfa2_project django-mfa2 2.5.1, 2.6.1
CISA SSVC
- Exploitation
- none
- Automatable
- yes
- Technical impact
- partial
- Assessed
- 17 mo ago
Exploit prediction
1.51% chance of exploitation in the next 30 days, higher than 74% of all scored CVEs (FIRST EPSS, 2026-11-08).
Exploits and checks
- github.com https://github.com/mkalioby/django-mfa2/blob/0936ea253354dd95cb127f09d0efa31324caef27/mfa/FIDO2.py#L58 referenced PoC, tagged "exploit" by a source, unverified
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CISA ADP | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| NVD | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| CNA | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
| GitHub | 3.1 | 7.5 | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| pypi | django-mfa2 | <2.5.1 >=2.6.0, <2.6.1 |
2.5.1 2.6.1 |
Classification
- Weakness
-
- CWE-294 Authentication Bypass by Capture-replay
References
-
github.com
/mkalioby/django-mfa2/commit/54db5a513bcafa97a36e9f6dfa31d3c61fa8217b
web
-
github.com
/mkalioby/django-mfa2/commit/5fbb505e98ecdd409330a5c336ad5ec49631b0db
web
-
github.com
/mkalioby/django-mfa2/blob/0936ea253354dd95cb127f09d0efa31324caef27/mfa/FIDO2.py#L58
web, exploit, third-party-advisory, evidence
-
github.com
/mkalioby/django-mfa2/releases/tag/v2.5.1-release
web, release-notes, third-party-advisory
-
github.com
/mkalioby/django-mfa2/releases/tag/v2.6.1-release
web, release-notes, third-party-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2022-42731
advisory
-
github.com
/mkalioby/django-mfa2
package
-
github.com
/pypa/advisory-database/tree/main/vulns/django-mfa2/PYSEC-2022-303.yaml
web
-
github.com
/advisories/GHSA-vw39-2wj9-4q86
advisory
Sources
- CVE List CVE-2022-42731
- GitHub Advisory GHSA-vw39-2wj9-4q86
- NVD CVE-2022-42731
- OSV PYSEC-2022-303
Fencer Vulns keeps one entry per vulnerability: the CVE id wins, then GHSA, and records that alias each other are merged, except that two CVEs always keep separate entries. The same data is available as JSON.