CVE-2026-39924
ŚrednieCVSS 6.8Streszczenie
Flarum przed wersją 1.8.16 zawiera podatność polegającą na nieprawidłowym unieważnianiu sesji, która pozwala atakującemu posiadającemu ważny token sesji na zachowanie pełnego dostępu do konta po zmianie hasła przez ofiarę, ponieważ tabela access_tokens nigdy nie jest czyszczona przy zmianie hasła. Funkcja TokensClearer::clearPasswordTokens() usuwa tylko wiersze z tabeli password_tokens, pozostawiając aktywne ciasteczka sesji i tokeny API, w tym długożyjące RememberAccessToken, a wymuszone przez administratora resetowanie haseł przez endpoint aktualizacji użytkownika jest równie nieskuteczne w odwoływaniu sesji atakującego.
Ocena ryzyka
Atakujący, który zdobędzie token sesji, może zachować dostęp do konta nawet po zmianie hasła przez ofiarę, co może prowadzić do długotrwałego nieautoryzowanego dostępu i naruszenia danych.
Rekomendacja
Zaktualizuj Flarum do wersji 1.8.16 lub nowszej, która zawiera poprawkę.
Inne podatności w Flarum
Zobacz wszystkie- CVE-2026-39923Wysokie
Flarum przed wersją 1.8.16 zawiera podatność na obejście wygaśnięcia tokenu resetowania hasła, która umożliwia nieuwierzytelnionym atakującym ponowne użycie wygasłych tokenów resetowania hasła poprzez bezpośrednie przesłanie ich do punktu końcowego przetwarzania resetowania. Metoda SavePasswordController::handle() wywołuje PasswordToken::findOrFail() bez przeprowadzania walidacji wygaśnięcia, co pozwala atakującym ominąć 24-godzinny okres ważności tokenu i zmienić hasło dowolnego konta, aby uzyskać uwierzytelnioną sesję.
- CVE-2023-40033Wysokie
Flarum, oprogramowanie forum typu open source, jest podatne na atak typu Blind Server-Side Request Forgery (SSRF) oraz ujawnienie plików na serwerze, nawet przy podstawowym koncie użytkownika. Wykorzystując lukę, atakujący może manipulować aplikacją, aby wykonać niezamierzone działania.
Oryginalny opis (angielski, źródło NVD)
Flarum before 1.8.16 contains an improper session invalidation vulnerability that allows attackers who hold a valid session token to retain full account access after a victim changes their password, because the access_tokens table is never cleared on password change events. The TokensClearer::clearPasswordTokens() function only removes rows from the password_tokens table while leaving all active session cookies and API bearer tokens intact, including long-lived RememberAccessToken entries, and administrator-forced password resets via the user update endpoint are equally ineffective at revoking attacker-held sessions.

