The vulnerability lies in the session management of OliveTin, specifically in the logout process. The Logout function in service/internal/api/api.go was only clearing the client-side session cookie, but it failed to invalidate the corresponding session on the server. The evidence for this is the addition of the auth.RevokeSessionForProvider call within the Logout function in the patch, which explicitly adds the missing server-side session revocation logic.
The function GetUserSession in service/internal/auth/sessions.go is the function that allows the exploitation of this vulnerability. It retrieves sessions from the server's storage. Since the Logout function didn't remove the session, GetUserSession would still find and return the session, allowing an attacker to reuse an old session ID to stay authenticated. The patch introduces RevokeUserSession and RevokeSessionForProvider to delete the session from the storage, which prevents GetUserSession from retrieving it after logout.