CVE-2026-86688
WysokieCVSS 7.4Streszczenie
Podatność Session Fixation w team-alembic ash_authentication pozwala atakującemu, który może umieścić identyfikator sesji w przeglądarce ofiary, na przejęcie uwierzytelnionej sesji po zalogowaniu się ofiary. Funkcja AshAuthentication.Plug.Helpers.store_in_session/2 zapisuje uwierzytelniony podmiot do istniejącej sesji bez wywoływania configure_session(renew: true), więc identyfikator, z którym przyszła ofiara, jest przenoszony do sesji uwierzytelnionej. Dotyczy to wszystkich zdarzeń uwierzytelniania, w tym domyślnego success/4, AuthController i automatycznego logowania remember-me. Wylogowanie nie zamyka okna, ponieważ clear_session/2 czyści zawartość sesji, ale pozostawia identyfikator, więc zasadzony identyfikator przetrwa cykl wylogowania i ponownego logowania. Problem dotyczy ash_authentication od 0.2.0 przed 4.15.0 oraz od 5.0.0-rc.0 przed 5.0.0-rc.14.
Ocena ryzyka
Atakujący może przejąć sesję uwierzytelnionego użytkownika, co może prowadzić do nieautoryzowanego dostępu do kont i danych.
Rekomendacja
Zaleca się aktualizację ash_authentication do wersji 4.15.0 lub 5.0.0-rc.14 oraz wdrożenie mechanizmów odnawiania sesji po zalogowaniu.
Inne podatności w ash_authentication
Zobacz wszystkie- CVE-2026-76949Krytyczne
Podatność w bibliotece ash_authentication (Elixir) pozwala atakującemu, który zdoła umieścić w przeglądarce ofiary ciasteczko remember-me, zastąpić uwierzytelnioną sesję ofiary sesją własnego konta. Problem wynika z niezgodności kluczy sesji używanych przez mechanizm sprawdzający i odczytujący sesję, przez co logowanie remember-me jest wykonywane przy każdym żądaniu.
- CVE-2026-91039Krytyczne
Podatność w ash_authentication dotyczy strategii dynamic_oidc, która nie zapewnia prawidłowej separacji przestrzeni tożsamości między połączeniami. Atakujący kontrolujący jedno połączenie może zostać zalogowany jako lokalny użytkownik utworzony przez inne połączenie, ponieważ identyfikatory użytkowników nie są odpowiednio rozdzielane.
- CVE-2026-88952Krytyczne
W ash_authentication występuje błędne uwierzytelnianie, które umożliwia atakującemu zalogowanie się jako inny użytkownik poprzez powiązanie swojej tożsamości OAuth2 z cudzym kontem. Atakujący może przypisać zweryfikowany e-mail do konta wybranego na podstawie innych atrybutów, co prowadzi do przejęcia sesji.
Oryginalny opis (angielski, źródło NVD)
Session Fixation vulnerability in team-alembic ash_authentication allows an attacker who can plant a session identifier in a victim's browser to hold an authenticated session once that victim signs in. AshAuthentication.Plug.Helpers.store_in_session/2 writes the authenticated subject into the existing session with Plug.Conn.put_session/3 and never calls Plug.Conn.configure_session(renew: true), so the identifier the visitor arrived with carries into their authenticated session. Every authentication event reaches this one function: the default success/4 injected by AshAuthentication.Phoenix.Controller.__using__/1, the AuthController emitted by mix ash_authentication_phoenix.install, and remember-me auto-login. AshAuthentication.Phoenix.Plug.store_in_session/2 is a defdelegate to it. Logout does not close the window either, because clear_session/2 ends with Plug.Conn.clear_session/1, which clears session contents but leaves the identifier intact, so a planted identifier survives a logout-then-login cycle. This issue affects ash_authentication: from 0.2.0 before 4.15.0 and from 5.0.0-rc.0 before 5.0.0-rc.14.

