Podatność w Mattermost Server pozwala uwierzytelnionemu użytkownikowi na przejęcie cudzego konta (account takeover) poprzez błąd w weryfikacji tokenu podczas wymiany kodu OAuth. Ocena CVSS 9.9 (Critical) wskazuje na bardzo wysoką krytyczność — atak możliwy zdalnie, bez interakcji ofiary.
▸ Pokaż oryginał (EN)
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).
Podatne wersje Mattermost Server nie weryfikują, czy token używany podczas wymiany kodu OAuth (endpoint /users/login/sso/code-exchange) pochodzi z tego samego przepływu uwierzytelniania, który go wygenerował. Atakujący, będąc zalogowanym użytkownikiem, może przesłać specjalnie spreparowany adres e-mail podczas przełączania metody uwierzytelniania, a następnie wysłać żądanie do wspomnianego endpointu z tokenem spoza oryginalnego przepływu. Wykorzystanie podatności wymaga, aby w konfiguracji serwera opcja ExperimentalEnableAuthenticationTransfer była włączona (domyślnie: włączona) oraz aby RequireEmailVerification była wyłączona (domyślnie: wyłączona).
Uwierzytelniony atakujący może przejąć kontrolę nad dowolnym kontem użytkownika (account takeover), co prowadzi do pełnego naruszenia poufności, integralności i dostępności danych dostępnych z poziomu przejętego konta.
Należy zaktualizować Mattermost Server do wersji poprawionych wskazanych przez producenta (szczegóły: https://mattermost.com/security-updates). Do czasu wdrożenia patcha zaleca się wyłączenie opcji ExperimentalEnableAuthenticationTransfer w konfiguracji serwera lub włączenie RequireEmailVerification, co eliminuje warunki niezbędne do wykorzystania podatności.
Mattermost Server w wersjach: 11.0.x <= 11.0.2, 10.12.x <= 10.12.1, 10.11.x <= 10.11.4, 10.5.x <= 10.5.12
Podatność wymaga spełnienia dwóch warunków konfiguracyjnych: ExperimentalEnableAuthenticationTransfer=true (domyślnie włączone) oraz RequireEmailVerification=false (domyślnie wyłączone). Instalacje z domyślną konfiguracją są narażone, o ile nie zmieniono ustawienia RequireEmailVerification.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:HMattermost Server
APPMattermost10.5.0 – 10.5.13 (bez)10.11.0 – 10.11.5 (bez)10.12.0 – 10.12.2 (bez)11.0.0 – 11.0.3 (bez)
Powiązane podatności
Mattermost Server: przejęcie konta przez błędną walidację OAuth state token
Mattermost Server: path traversal w ekstraktorze archiwów umożliwia RCE
Mattermost Server — path traversal przy imporcie tablic (Boards)
Mattermost Server: path traversal przy duplikowaniu bloków w Boards
SQL Injection w Mattermost Server — podatność przy zmianie kolejności tablic