GHSA-QQ2P-4282-CFC5
Vulnerability from github – Published: 2026-05-18 15:36 – Updated: 2026-05-18 15:36
VLAI
Summary
eduMFA: Incorrect InnoDB snapshot isolation possibly allows token reusage
Details
Impact
For deployments using MySQL or MariaDB < 11.6.2 (or newer with innodb_snapshot_isolation=off) reusage of token values might be possible due to faulty transaction isolation inside the database. Exploiting this requires racing this transaction. Affected are all tokentypes whose values are only supposed to be used once, for example TOTP, HOTP and likely also WebAuthN.
Affected Combinations:
- MySQL (any version)
- MariaDB with innodb_snapshot_isolation=OFF
- innodb_snapshot_isolation was introduced in: MariaDB 10.6.18, MariaDB 10.11.8, MariaDB 11.0.6, MariaDB 11.1.5, MariaDB 11.2.4, MariaDB 11.4.2 with default OFF, can be turned ON as a workaround
- for MariaDB >= 11.6.2 the default is ON, which is not affected
- Same rules applies for Galera with underlying MariaDB
Patches
Fixed in version 2.9.1 by locking rows prior to write with SELECT FOR UPDATE.
Workarounds
Set innodb_snapshot_isolation to ON (default in MariaDB >= 11.6.2, e.g packaged in Debian 13).
Resources
https://mariadb.com/resources/blog/isolation-level-violation-testing-and-debugging-in-mariadb/
Severity
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "edumfa"
},
"ranges": [
{
"events": [
{
"introduced": "0"
},
{
"fixed": "2.9.1"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [],
"database_specific": {
"cwe_ids": [
"CWE-285"
],
"github_reviewed": true,
"github_reviewed_at": "2026-05-18T15:36:18Z",
"nvd_published_at": null,
"severity": "HIGH"
},
"details": "### Impact\n\nFor deployments using MySQL or MariaDB \u003c 11.6.2 (or newer with innodb_snapshot_isolation=off) reusage of token values might be possible due to faulty transaction isolation inside the database. Exploiting this requires racing this transaction.\nAffected are all tokentypes whose values are only supposed to be used once, for example TOTP, HOTP and likely also WebAuthN.\n\n#### Affected Combinations:\n\n- MySQL (any version)\n- MariaDB with innodb_snapshot_isolation=OFF\n - innodb_snapshot_isolation was introduced in: MariaDB 10.6.18, MariaDB 10.11.8, MariaDB 11.0.6, MariaDB 11.1.5, MariaDB 11.2.4, MariaDB 11.4.2\n with default OFF, can be turned ON as a workaround\n - for MariaDB \u003e= 11.6.2 the default is ON, which is not affected\n- Same rules applies for Galera with underlying MariaDB\n\n### Patches\nFixed in version 2.9.1 by locking rows prior to write with SELECT FOR UPDATE.\n\n### Workarounds\nSet innodb_snapshot_isolation to ON (default in MariaDB \u003e= 11.6.2, e.g packaged in Debian 13).\n\n### Resources\nhttps://mariadb.com/resources/blog/isolation-level-violation-testing-and-debugging-in-mariadb/",
"id": "GHSA-qq2p-4282-cfc5",
"modified": "2026-05-18T15:36:18Z",
"published": "2026-05-18T15:36:18Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/eduMFA/eduMFA/security/advisories/GHSA-qq2p-4282-cfc5"
},
{
"type": "PACKAGE",
"url": "https://github.com/eduMFA/eduMFA"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:H/AT:P/PR:L/UI:P/VC:H/VI:L/VA:L/SC:H/SI:L/SA:L",
"type": "CVSS_V4"
}
],
"summary": "eduMFA: Incorrect InnoDB snapshot isolation possibly allows token reusage"
}
Loading…
Loading…
Experimental. This forecast is provided for visualization only and may change without notice. Do not use it for operational decisions.
Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.
Sightings
| Author | Source | Type | Date | Other |
|---|
Nomenclature
- Seen: The vulnerability was mentioned, discussed, or observed by the user.
- Confirmed: The vulnerability has been validated from an analyst's perspective.
- Published Proof of Concept: A public proof of concept is available for this vulnerability.
- Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
- Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
- Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
- Not confirmed: The user expressed doubt about the validity of the vulnerability.
- Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.
Loading…
Loading…