Katalog CVE

CVE-2026-48079

WysokieCVSS 7.4
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.39%

Percentyl 31 - wyżej niż 31% wszystkich znanych CVE

Streszczenie

Przed wersją 1.0.2 OpenReception, podczas nawigacji do strony `/logout`, handler ładowania po stronie serwera usuwa ciasteczko `access_token` przed wywołaniem `/api/auth/logout` przez wewnętrzny `event.fetch()`. Wewnętrzne żądanie jest wykonywane bez ciasteczka uwierzytelniającego, więc `apiAuthHandle` odrzuca je, handler wylogowania nie wykonuje się, a `SessionService.revokeSession()` nie jest wywoływany dla bieżącej sesji. Sesja w bazie danych pozostaje ważna do naturalnego wygaśnięcia (domyślnie tydzień). Użytkownik widzi poprawne wylogowanie (ciasteczko usunięte, UI wraca do logowania), ale każda strona posiadająca kopię usuniętego tokena może kontynuować uwierzytelnione wywołania API do naturalnego wygaśnięcia sesji.

Ocena ryzyka

Ryzyko polega na tym, że sesja pozostaje aktywna po wylogowaniu, co może pozwolić osobie trzeciej na dostęp do konta użytkownika bez jego wiedzy. Może to prowadzić do nieautoryzowanego dostępu do danych lub działań w systemie.

Rekomendacja

Zaktualizuj OpenReception do wersji 1.0.2 lub nowszej, która inicjuje wylogowanie po stronie serwera przed usunięciem ciasteczek uwierzytelniających. Wersja 2.0.0 zastępuje to bezpiecznym przepływem wylogowania po stronie klienta.

Inne podatności w OpenReception

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

OpenReception's appointment booking software provides an end-to-end encrypted appointment booking platform. Prior to version 1.0.2, when a user navigates to the `/logout` page, the page's server-side load handler deletes the `access_token` cookie before calling `/api/auth/logout` via an internal `event.fetch()`. The internal fetch consequently runs without the auth cookie, so `apiAuthHandle` rejects it, the logout handler never executes, and `SessionService.revokeSession()` is never called for the current session. The DB session row remains valid until its natural expiry (one week by default). The user sees a successful logout (cookie gone, UI returns to login), but any party still holding a copy of the now-deleted access token can continue making authenticated API calls until the session naturally expires. The root cause is a simple ordering mistake. The same auth subsystem implements the correct order in `/api/auth/logout`: revoke the current DB session first, then delete the cookie. The page-level wrapper does the opposite. Version 1.0.2 initiates server-side logout before removing authentication cookies and first appears in version 1.0.2. Version 2.0.0 later replaces this with a race-free client-side logout flow.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS