{"id":"CVE-2025-12421","revision":null,"records":[{"revision":"292ce250c05e425ca29c4391ab87b00a","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2025-12421","aliases":[],"title":"Account Takeover via Code Exchange Endpoint","description":"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).","state":0,"publishedAt":"2025-11-27T17:47:04.944+00:00","modifiedAt":"2026-02-26T16:07:25.754+00:00","affected":[{"ecosystem":"Vendor product","name":"Mattermost","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"defaultStatus\": \"unaffected\",\n                    \"product\": \"Mattermost\",\n                    \"vendor\": \"Mattermost\",\n                    \"versions\": [\n                        {\n                            \"lessThanOrEqual\": \"11.0.2\",\n                            \"status\": \"affected\",\n                            \"version\": \"11.0.0\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"lessThanOrEqual\": \"10.12.1\",\n                            \"status\": \"affected\",\n                            \"version\": \"10.12.0\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"lessThanOrEqual\": \"10.11.4\",\n                            \"status\": \"affected\",\n                            \"version\": \"10.11.0\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"lessThanOrEqual\": \"10.5.12\",\n                            \"status\": \"affected\",\n                            \"version\": \"10.5.0\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"11.1.0\",\n                            \"status\": \"unaffected\"\n                        },\n                        {\n                            \"version\": \"11.0.3\",\n                            \"status\": \"unaffected\"\n                        },\n                        {\n                            \"version\": \"10.12.2\",\n                            \"status\": \"unaffected\"\n                        },\n                        {\n                            \"version\": \"10.11.5\",\n                            \"status\": \"unaffected\"\n                        },\n                        {\n                            \"version\": \"10.5.13\",\n                            \"status\": \"unaffected\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","score":9.9,"severity":"CRITICAL"}],"references":["https://mattermost.com/security-updates"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2025-12421","license":"CVE Program Terms of Use","key":"cve-program:CVE-2025-12421","identifiers":["CVE-2025-12421"]},"retained":false,"historicalAffected":[]},{"revision":"799683b47b404dbd85fb61c26871fbed","observedAt":"2026-11-07T01:27:22.753+00:00","statement":{"source":"euvd","id":"EUVD-2025-199833","aliases":["CVE-2025-12421","GHSA-mp6x-97xj-9x62"],"title":"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 …","description":"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).","state":0,"publishedAt":null,"modifiedAt":null,"affected":[],"metrics":[{"system":"EUVD CVSS 3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","score":9.9,"severity":null}],"references":["https://mattermost.com/security-updates"],"sourceUrl":"https://euvd.enisa.europa.eu/vulnerability/EUVD-2025-199833","license":"ENISA EUVD · source terms and attribution apply","enrichment":{"sourceStatus":null,"weaknesses":[],"productCriteria":[],"sourceDates":{"datePublished":"Nov 27, 2025, 5:47:04 PM","dateUpdated":"Feb 26, 2026, 4:07:25 PM"},"relatedAdvisories":[{"id":"NCSC-2025-0378","title":"Kwetsbaarheden verholpen in Mattermost","vulnerabilityIds":["CVE-2025-12421","CVE-2025-12419"]}],"note":"EUVD source date text has no stated timezone and is retained without inventing a UTC instant. Related bulletin membership is not an alias, common cause or applicability claim. A missing vector with a zero score is treated as unrated. Complete vendor/product and underlying source evidence remains in the original JSON."},"key":"euvd:EUVD-2025-199833","identifiers":["EUVD-2025-199833","CVE-2025-12421","GHSA-mp6x-97xj-9x62"]},"retained":false,"historicalAffected":[]},{"revision":"141fe2f4adc2469ab0fde925a62f0442","observedAt":"2026-10-25T01:17:23.283+00:00","statement":{"source":"nvd","id":"CVE-2025-12421","aliases":[],"title":"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 …","description":"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).","state":0,"publishedAt":"2025-11-27T18:15:46.223+00:00","modifiedAt":"2026-10-19T13:10:00.11+00:00","affected":[],"metrics":[{"system":"CVSS 3.1 · responsibledisclosure@mattermost.com · Secondary","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","score":9.9,"severity":"CRITICAL"}],"references":["https://mattermost.com/security-updates"],"sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2025-12421","license":"NIST NVD usage terms; underlying source attribution retained","enrichment":{"sourceStatus":"Analyzed","weaknesses":["CWE-303"],"productCriteria":["cpe:2.3:a:mattermost:mattermost_server:*:*:*:*:*:*:*:*"],"sourceDates":{"published":"2025-11-27T18:15:46.223","lastModified":"2026-10-19T13:10:00.110"},"relatedAdvisories":[],"note":"NVD analysis and CPE criteria are source context, not proof that a package or your environment is affected. Complete affected data, logical configurations and SSVC are retained in the original JSON."},"key":"nvd:CVE-2025-12421","identifiers":["CVE-2025-12421"]},"retained":false,"historicalAffected":[]},{"revision":"f3e2c8817c9947cab3f8ad4cef36864f","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GHSA-mp6x-97xj-9x62","aliases":["CVE-2025-12421","GO-2025-4170"],"title":"Mattermost fails to to verify the token used during code exchange","description":"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).","state":0,"publishedAt":"2025-11-27T18:30:26+00:00","modifiedAt":"2025-12-15T21:11:10.008786+00:00","affected":[{"ecosystem":"Go","name":"github.com/mattermost/mattermost/server/v8","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"8.0.0-20251022210333-acda1fb5dd46"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/mattermost/mattermost-server","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"11.0.0"},{"kind":"fixed","version":"11.0.3"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/mattermost/mattermost-server","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"10.12.0"},{"kind":"fixed","version":"10.12.2"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/mattermost/mattermost-server","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"10.11.0"},{"kind":"fixed","version":"10.11.5"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/mattermost/mattermost-server","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"10.5.0"},{"kind":"fixed","version":"10.5.13"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[{"system":"CVSS_V3","vector":"CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H","score":null,"severity":null},{"system":"Publisher rating","vector":null,"score":null,"severity":"CRITICAL"}],"references":["https://nvd.nist.gov/vuln/detail/CVE-2025-12421","https://github.com/mattermost/mattermost/commit/5072bbf689a46b3b97b2373f26149f5891396e6b","https://github.com/mattermost/mattermost/commit/acda1fb5dd46a2f46c76ae67012423c760525eaa","https://github.com/mattermost/mattermost/commit/f361e7d75a7ab9df5a2106e1ceb919b94b55e41d","https://github.com/mattermost/mattermost/commit/feb598ed2b7ac3cb78a253b032ad7e4628b0de00","https://github.com/mattermost/mattermost","https://mattermost.com/security-updates"],"sourceUrl":"https://github.com/advisories/GHSA-mp6x-97xj-9x62","license":"GitHub Advisory Database · CC-BY-4.0","key":"osv:GHSA-mp6x-97xj-9x62","identifiers":["GHSA-mp6x-97xj-9x62","CVE-2025-12421","GO-2025-4170"]},"retained":false,"historicalAffected":[]},{"revision":"fc58e80eff8848cfb9cca1d8cab84bff","observedAt":"2026-10-24T13:19:41.952+00:00","statement":{"source":"osv","id":"GO-2025-4170","aliases":["CVE-2025-12421","GHSA-mp6x-97xj-9x62"],"title":"Mattermost fails to to verify the token used during code exchange in github.com/mattermost/mattermost-server","description":"Mattermost fails to to verify the token used during code exchange in github.com/mattermost/mattermost-server.\n\nNOTE: The source advisory for this report contains additional versions that could not be automatically mapped to standard Go module versions.\n\n(If this is causing false-positive reports from vulnerability scanners, please suggest an edit to the report.)\n\nThe additional affected modules and versions are: github.com/mattermost/mattermost-server from v10.5.0 before v10.5.13, from v10.11.0 before v10.11.5, from v10.12.0 before v10.12.2, from v11.0.0 before v11.0.3.","state":0,"publishedAt":"2025-12-15T20:33:49+00:00","modifiedAt":"2026-03-03T04:57:44.235626+00:00","affected":[{"ecosystem":"Go","name":"github.com/mattermost/mattermost-server","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/mattermost/mattermost-server/v5","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/mattermost/mattermost-server/v6","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"}]}],"versions":[],"rawVersionEvidence":null},{"ecosystem":"Go","name":"github.com/mattermost/mattermost/server/v8","ranges":[{"type":"SEMVER","events":[{"kind":"introduced","version":"0"},{"kind":"fixed","version":"8.0.0-20251022210333-acda1fb5dd46"}]}],"versions":[],"rawVersionEvidence":null}],"metrics":[],"references":["https://github.com/advisories/GHSA-mp6x-97xj-9x62","https://nvd.nist.gov/vuln/detail/CVE-2025-12421","https://github.com/mattermost/mattermost/commit/5072bbf689a46b3b97b2373f26149f5891396e6b","https://github.com/mattermost/mattermost/commit/acda1fb5dd46a2f46c76ae67012423c760525eaa","https://github.com/mattermost/mattermost/commit/f361e7d75a7ab9df5a2106e1ceb919b94b55e41d","https://github.com/mattermost/mattermost/commit/feb598ed2b7ac3cb78a253b032ad7e4628b0de00","https://mattermost.com/security-updates"],"sourceUrl":"https://osv.dev/vulnerability/GO-2025-4170","license":"OSV · upstream source license applies","key":"osv:GO-2025-4170","identifiers":["GO-2025-4170","CVE-2025-12421","GHSA-mp6x-97xj-9x62"]},"retained":false,"historicalAffected":[]}],"coverage":[{"source":"cisa-kev:global","scope":"Complete CISA KEV catalog; all vendors. Missing entries do not establish absence of exploitation.","generation":"2026-11-08T23:02:15.9754883+00:00","complete":true,"records":1769,"lastAttemptAt":"2026-11-08T23:02:15.9754883+00:00","lastSuccessAt":"2026-11-08T23:02:16.1185375+00:00","error":null,"lastVerifiedAt":"2026-11-08T23:02:16.1185396+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"cve-program","scope":"Official CVE Program baseline and cumulative hourly delta; all vendors, published and rejected records","generation":"cve-eaa64dac63caa79c8d4905619258c41c51b39e461b996124e1a21b5e85e7e738-0ee53194438b774350db8ba2be9961094a7945659f4bca5c09ae0ef23c2c3f0c","complete":true,"records":421267,"lastAttemptAt":"2026-11-08T23:02:15.4905694+00:00","lastSuccessAt":"2026-11-08T23:02:15.4057062+00:00","error":null,"lastVerifiedAt":"2026-11-08T23:02:15.4905694+00:00","snapshotPublishedAt":"2026-11-08T22:18:37+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"euvd","scope":"Rolling EUVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global EUVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-64ec014845cf41e0b44c7812575dade1","complete":false,"records":13654,"lastAttemptAt":"2026-11-08T23:11:05.5177476+00:00","lastSuccessAt":"2026-11-08T23:11:05.509+00:00","error":null,"lastVerifiedAt":"2026-11-08T23:11:05.509+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13457,"expectedIdentifiers":13706,"failedIdentifiers":0},{"source":"first-epss:nuget","scope":"FIRST EPSS for explicit CVE aliases in the collected public NuGet archive. Not a global EPSS backfill.","generation":"2026-11-08T23:02:15.9754883+00:00","complete":true,"records":1096,"lastAttemptAt":"2026-11-08T23:02:15.9754883+00:00","lastSuccessAt":"2026-11-08T23:02:16.1192591+00:00","error":null,"lastVerifiedAt":"2026-11-08T23:02:16.1192597+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"nvd","scope":"Rolling NVD lookups of CVE aliases in current public OSV archives; 500 identifiers per refresh, rechecked after 48 hours. Not a global NVD catalog. Successful not-found lookups count as checked; they do not imply withdrawal or safety. No reader inventory is sent.","generation":"enrichment-bbd1082fa13b4aff99c01e332b64e44f","complete":true,"records":13666,"lastAttemptAt":"2026-11-08T23:02:17.0620293+00:00","lastSuccessAt":"2026-11-08T23:02:17.059+00:00","error":null,"lastVerifiedAt":"2026-11-08T23:02:17.059+00:00","snapshotPublishedAt":null,"importing":false,"stagedRecords":0,"checkedIdentifiers":13706,"expectedIdentifiers":13706,"failedIdentifiers":0},{"source":"osv:Go","scope":"Complete OSV Go ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"go-980593e6977a6d1b4fb1eed5a1ffe88a468736f89f0a06f710924ad59132c023","complete":true,"records":9914,"lastAttemptAt":"2026-11-08T23:02:15.8370588+00:00","lastSuccessAt":"2026-11-08T11:07:07.068788+00:00","error":null,"lastVerifiedAt":"2026-11-08T23:02:15.8370588+00:00","snapshotPublishedAt":"2026-11-08T11:02:46+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:NuGet","scope":"Complete OSV NuGet ecosystem archive, including GitHub Advisory Database records; NuGet version matching only","generation":"nuget-fde804134ecdda0ddd5ff5c26ee1fff5a6fa659311f7ef2e51c6ad54964db0e2","complete":true,"records":1971,"lastAttemptAt":"2026-11-08T23:02:15.64043+00:00","lastSuccessAt":"2026-11-06T19:03:17.0399903+00:00","error":null,"lastVerifiedAt":"2026-11-08T23:02:15.64043+00:00","snapshotPublishedAt":"2026-11-06T18:17:57+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:crates.io","scope":"Complete OSV crates.io ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"crates.io-964c14035e6f0f6478b2870fad6a7ef9f6045876d4a12af2c2e514521e54b6af","complete":true,"records":3055,"lastAttemptAt":"2026-11-08T23:02:15.942926+00:00","lastSuccessAt":"2026-11-08T11:07:12.1927025+00:00","error":null,"lastVerifiedAt":"2026-11-08T23:02:15.942926+00:00","snapshotPublishedAt":"2026-11-08T11:02:46+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null},{"source":"osv:npm","scope":"Complete OSV npm ecosystem archive, including withdrawn and malicious-package source records; statement counts are not unique CVE counts","generation":"npm-f8647d7ba64b1ba0dfdc7130944766d5b36d5b77d18fff0c79e651a4cff3c2b9","complete":true,"records":231293,"lastAttemptAt":"2026-11-08T23:02:15.7372001+00:00","lastSuccessAt":"2026-11-08T11:06:56.2918717+00:00","error":null,"lastVerifiedAt":"2026-11-08T23:02:15.7372001+00:00","snapshotPublishedAt":"2026-11-08T11:02:50+00:00","importing":false,"stagedRecords":0,"checkedIdentifiers":null,"expectedIdentifiers":null,"failedIdentifiers":null}]}