Aplikacja JobCenter umożliwia przejęcie konta użytkownika (account takeover) poprzez manipulację nagłówkiem HTTP Host podczas korzystania z funkcji resetowania hasła. Podatność jest krytyczna, ponieważ nie wymaga żadnego uwierzytelnienia ani interakcji ofiary poza kliknięciem w link resetujący.
▸ Pokaż oryginał (EN)
JobCenter through 7e7b0b2 allows account takeover via the password reset feature because SERVER_NAME is not configured and thus a reset depends on the Host HTTP header.
Aplikacja nie ma skonfigurowanej zmiennej SERVER_NAME, przez co do generowania linku resetującego hasło używa wartości nagłówka HTTP Host dostarczonej przez klienta. Atakujący może wysłać żądanie resetowania hasła dla wybranego konta, jednocześnie podając w nagłówku Host własny serwer. W rezultacie link resetujący hasło zostaje wygenerowany z domeną kontrolowaną przez atakującego i wysłany na adres e-mail ofiary. Jeśli ofiara kliknie taki link, token resetujący trafi do atakującego, który może go wykorzystać do ustawienia nowego hasła i przejęcia konta.
Atakujący może w pełni przejąć dowolne konto użytkownika aplikacji, uzyskując tym samym nieautoryzowany dostęp do danych i funkcji przypisanych do tego konta (CWE-640: słabe mechanizmy odzyskiwania hasła).
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Jako obejście należy skonfigurować zmienną SERVER_NAME w aplikacji, aby generowane linki resetujące hasło zawsze korzystały z zaufanej, zdefiniowanej domeny, a nie z wartości nagłówka HTTP Host dostarczonej przez klienta.
JobCenter w wersji do commit 7e7b0b2 włącznie (repozytorium github.com/guomaoqiu/JobCenter)
Szczegóły techniczne podatności zostały opublikowane w repozytorium GitHub projektu (issue #18). Podatność dotyczy projektu open-source hostowanego na GitHub.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H