CVE-2026-39923
WysokieCVSS 8.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 18 - wyżej niż 18% wszystkich znanych CVE
Streszczenie
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ę.
Ocena ryzyka
Atakujący może przejąć kontrolę nad kontami użytkowników, co może prowadzić do naruszenia integralności danych i poufności.
Rekomendacja
Zaktualizuj Flarum do wersji 1.8.16 lub nowszej i rozważ wdrożenie dodatkowych mechanizmów bezpieczeństwa dla resetowania haseł.
Inne podatności w Flarum
Zobacz wszystkie- CVE-2026-39924Średnie
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.
- 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 a password reset token expiry bypass vulnerability that allows unauthenticated attackers to reuse expired password reset tokens by submitting them directly to the reset processing endpoint. The SavePasswordController::handle() method calls PasswordToken::findOrFail() without performing any expiry validation, allowing attackers to bypass the 24-hour token lifetime enforced only during form rendering and change any account's password to gain an authenticated session.

