W aplikacji Immich (samodzielnie hostowane zarządzanie zdjęciami i wideo) odkryto podatność typu reflected XSS na stronie logowania /auth/login, która pozwala atakującemu na pełne przejęcie konta ofiary poprzez skłonienie jej do kliknięcia w spreparowany link. Podatność jest krytyczna, ponieważ nie wymaga żadnych uprawnień po stronie atakującego i prowadzi do trwałego przejęcia konta.
▸ Pokaż oryginał (EN)
immich is a high performance self-hosted photo and video management solution. From commit 4ffa26c9 until 4eb1003, a reflected cross-site scripting (XSS) vulnerability on the /auth/login page allows an attacker to fully compromise any authenticated user's account with a single link click. The continue query parameter is read from the URL and passed to SvelteKit's redirect() without any scheme or origin validation, allowing attacker-controlled JavaScript to execute inside Immich's origin. The payload then uses the victim's existing session to mint an all-permission API key on their account, leading to persistent account takeover. This vulnerability is fixed in commit 4eb1003.
Parametr zapytania 'continue' odczytywany z adresu URL strony logowania jest przekazywany bezpośrednio do funkcji redirect() frameworka SvelteKit bez jakiejkolwiek walidacji schematu ani pochodzenia (origin). Umożliwia to atakującemu osadzenie w tym parametrze złośliwego kodu JavaScript, który zostaje wykonany w kontekście origin aplikacji Immich. Payload wykonany w przeglądarce ofiary wykorzystuje jej istniejącą sesję do automatycznego wygenerowania klucza API z pełnymi uprawnieniami na jej koncie, co skutkuje trwałym przejęciem konta nawet po wylogowaniu.
Atakujący uzyskuje pełną kontrolę nad kontem ofiary poprzez wygenerowanie trwałego klucza API z wszystkimi uprawnieniami, co oznacza nieautoryzowany dostęp do wszystkich przechowywanych zdjęć i wideo oraz możliwość dalszego działania niezależnie od sesji ofiary.
Należy zaktualizować Immich do wersji zawierającej commit 4eb100327ea5da2e90381b96809f1f1cc51cc7e3 lub nowszej, w której wprowadzono walidację schematu i origin dla parametru 'continue'. Szczegóły dostępne w referencjach producenta (GitHub Security Advisory GHSA-8244-8vpr-vp9c).
Aplikacja Immich w wersjach opartych na commitach od 4ffa26c9 do (z wyłączeniem) 4eb1003
Podatność dotyczy wyłącznie użytkowników zalogowanych (uwierzytelnionych) — atak wymaga jedynie interakcji użytkownika (kliknięcia linku), bez konieczności posiadania jakichkolwiek uprawnień przez atakującego. Oprócz CWE-79 (XSS) zgłoszono również CWE-601 (open redirect), co wskazuje na brak walidacji przekierowania jako pierwotną przyczynę podatności.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H