CVE-2025-12421 json
Account Takeover via Code Exchange Endpoint
published 2025-11-27 11 mo ago modified 2026-10-19 21 d ago also GHSA-mp6x-97xj-9x62 , GO-2025-4170 , EUVD-2025-199833
- cvss
- 9.9
- version 3.1, CNA
- cisa kev
- Not listed
- not in CISA's catalog
- epss
- 0.4%
- EPSS 0.4% chance of exploitation in 30 days, percentile 39%
- public exploits
- 0
- none known
Summary
Mattermost versions 11.0.x <= 11.0.2, 10.12.x <= 10.12.1, 10.11.x <= 10.11.4, 10.5.x <= 10.5.12 fail to to verify that the token used during the code exchange originates from the same authentication flow, which allows an authenticated user to perform account takeover via a specially crafted email address used when switching authentication methods and sending a request to the /users/login/sso/code-exchange endpoint. The vulnerability requires ExperimentalEnableAuthenticationTransfer to be enabled (default: enabled) and RequireEmailVerification to be disabled (default: disabled).
Patch / fix
- go github.com/mattermost/mattermost/server/v8 8.0.0-20251022210333-acda1fb5dd46
- go github.com/mattermost/mattermost-server 10.5.13, 10.11.5, 10.12.2, 11.0.3
- Mattermost Mattermost 10.5.13, 10.11.5, 10.12.2, 11.0.3, 11.1.0
- govulncheck-vulndb openSUSE Leap 15.6 0.0.20251230T014957-150000.1.134.1
suse advisories SUSE-SU-2026:0037-1
- govulncheck-vulndb openSUSE Leap 16.0 0.0.20260723T184607-160000.1.1
opensuse advisories openSUSE-SU-2026:21483-1
CISA SSVC
- Exploitation
- none
- Automatable
- no
- Technical impact
- total
- Assessed
- 11 mo ago
Exploit prediction
0.45% chance of exploitation in the next 30 days, higher than 39% of all scored CVEs (FIRST EPSS, 2026-11-08).
CVSS scores
| assigned by | version | score | vector |
|---|---|---|---|
| CNA | 3.1 | 9.9 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
| GitHub | 3.1 | 9.9 | CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H |
Affected packages
| ecosystem | package | affected | fixed in |
|---|---|---|---|
| go | github.com/mattermost/mattermost/server/v8 | <8.0.0-20251022210333-acda1fb5dd46 |
8.0.0-20251022210333-acda1fb5dd46 |
| go | github.com/mattermost/mattermost-server | >=11.0.0, <11.0.3 >=10.12.0, <10.12.2 >=10.11.0, <10.11.5 >=10.5.0, <10.5.13 all versions |
11.0.3 10.12.2 10.11.5 10.5.13 |
| go | github.com/mattermost/mattermost-server/v5 | all versions |
no fix listed |
| go | github.com/mattermost/mattermost-server/v6 | all versions |
no fix listed |
Affected products
- Mattermost Mattermost
Classification
References
-
github.com
/mattermost/mattermost/commit/5072bbf689a46b3b97b2373f26149f5891396e6b
web
-
github.com
/mattermost/mattermost/commit/acda1fb5dd46a2f46c76ae67012423c760525eaa
web
-
github.com
/mattermost/mattermost/commit/f361e7d75a7ab9df5a2106e1ceb919b94b55e41d
web
-
github.com
/mattermost/mattermost/commit/feb598ed2b7ac3cb78a253b032ad7e4628b0de00
web
-
mattermost.com
/security-updates
web, vendor-advisory
-
nvd.nist.gov
/vuln/detail/CVE-2025-12421
advisory
-
github.com
/mattermost/mattermost
package
-
github.com
/advisories/GHSA-mp6x-97xj-9x62
advisory
Sources
- CVE List CVE-2025-12421
- GitHub Advisory GHSA-mp6x-97xj-9x62
- NVD CVE-2025-12421
- OSV GO-2025-4170
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.