Aplikacja fblog w wersji do commitu 983bede umożliwia przejęcie dowolnego konta użytkownika poprzez funkcję resetowania hasła. Podatność wynika z braku konfiguracji zmiennej SERVER_NAME, co powoduje, że link do resetu hasła jest generowany na podstawie nagłówka HTTP Host dostarczonego przez atakującego.
▸ Pokaż oryginał (EN)
fblog through 983bede allows account takeover via the password reset feature because SERVER_NAME is not configured and thus a reset depends on the Host HTTP header.
Gdy użytkownik inicjuje reset hasła, aplikacja buduje link resetujący na podstawie nagłówka Host z żądania HTTP, zamiast korzystać ze skonfigurowanej, zaufanej nazwy serwera. Atakujący może wysłać żądanie resetu hasła z dowolnie zmodyfikowanym nagłówkiem Host wskazującym na kontrolowany przez siebie serwer. W rezultacie ofiara otrzymuje wiadomość e-mail z linkiem prowadzącym do serwera atakującego, który przechwytuje token resetujący. Dysponując tokenem, atakujący może ustawić nowe hasło i w pełni przejąć konto ofiary.
Atakujący może przejąć pełną kontrolę nad dowolnym kontem użytkownika aplikacji fblog bez znajomości jego aktualnego hasła. Skutkuje to naruszeniem poufności, integralności i dostępności danych konta.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Doraźnie należy skonfigurować zmienną SERVER_NAME w aplikacji, tak aby link resetujący hasło był generowany na podstawie zaufanej, sztywno zdefiniowanej nazwy serwera, a nie nagłówka HTTP Host.
Aplikacja fblog we wszystkich wersjach do commitu 983bede włącznie (repozytorium ghost123gg/fblog).
Podatność sklasyfikowana jako CWE-472 (External Control of Assumed-Immutable Web Parameter). Szczegóły techniczne oraz dowód koncepcji dostępne są w publicznym zgłoszeniu na GitHub (issues/5).
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H