Fix #4555: Invalidate sessions for deleted users
Fix three exploits that allowed one to keep using their account after it was deleted: * It was possible to use session cookies from another computer to login after you deleted your account. * It was possible to use API keys to make API requests after you deleted your account. * It was possible to request a password reset, delete your account, then use the password reset link to change your password and login to your deleted account.
This commit is contained in:
@@ -143,7 +143,13 @@ class SessionLoader
|
||||
# Set the current user based on the `user_id` session cookie.
|
||||
def load_session_user
|
||||
user = User.find_by_id(session[:user_id])
|
||||
CurrentUser.user = user if user
|
||||
return if user.nil?
|
||||
|
||||
if user.is_deleted?
|
||||
logout(user)
|
||||
else
|
||||
CurrentUser.user = user
|
||||
end
|
||||
end
|
||||
|
||||
def update_last_logged_in_at
|
||||
|
||||
Reference in New Issue
Block a user