Podatność typu host header injection w komponencie mailer biblioteki @perfood/couch-auth v0.26.0 umożliwia atakującemu przechwycenie tokenu resetowania hasła i przejęcie konta użytkownika. Jest to krytyczna luka, ponieważ nie wymaga uwierzytelnienia ani żadnych specjalnych uprawnień.
▸ Pokaż oryginał (EN)
A host header injection vulnerability in the mailer component of @perfood/couch-auth v0.26.0 allows attackers to obtain reset tokens and execute an account takeover via spoofing the HTTP Host header.
Atakujący wysyła żądanie HTTP z podmienionym nagłówkiem 'Host', wskazującym na serwer kontrolowany przez atakującego. Komponent mailer @perfood/couch-auth bezkrytycznie wykorzystuje wartość tego nagłówka podczas generowania linku do resetowania hasła wysyłanego w wiadomości e-mail do użytkownika. Gdy ofiara kliknie w spreparowany link, token resetowania hasła trafia do serwera atakującego. Posiadając token, atakujący może zresetować hasło i przejąć konto ofiary.
Atakujący może przejąć pełną kontrolę nad kontem dowolnego użytkownika aplikacji, który skorzysta z funkcji resetowania hasła. Prowadzi to do całkowitej kompromitacji poufności i integralności danych konta.
Należy zastosować patche dostępne u producenta zgodnie z referencjami. Zaleca się śledzenie repozytorium projektu na GitHub (https://github.com/perfood/couch-auth) oraz strony pakietu npm w celu uzyskania zaktualizowanej wersji. Tymczasowo warto rozważyć walidację i wymuszanie dozwolonych wartości nagłówka 'Host' na poziomie serwera lub reverse proxy (np. poprzez whitelistę dozwolonych hostów).
Biblioteka @perfood/couch-auth w wersji 0.26.0 (pakiet npm). Aplikacje korzystające z tej biblioteki do obsługi uwierzytelniania i resetowania haseł.
Publicznie dostępna jest demonstracja podatności (proof-of-concept) opublikowana w serwisie GitHub Gist pod adresem wskazanym w referencjach.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:N