PT-2026-67314 · Unknown · Better Auth+1
CVSS v4.0
5.1
Média
| Vetor | AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N |
Nome do Software Vulnerável e Versões Afetadas
better-auth versões anteriores a 1.6.11
@better-auth/scim versões anteriores a 1.6.11
Description
Quando o
secondaryStorage está configurado e storeSessionInDatabase está definido como false, certos processos de exclusão de usuários falham ao remover sessões em cache. Isso ocorre porque a função internalAdapter.deleteUser(userId) é chamada sem a invocação prévia de internalAdapter.deleteSessions(userId), mantendo a carga útil da sessão no armazenamento secundário. Consequentemente, os tokens de sessão de usuários excluídos permanecem válidos até que o Tempo de Vida (TTL) da sessão expire, que é de sete dias por padrão, permitindo a autenticação não autorizada e o acesso a superfícies de leitura e escrita.O problema afeta os seguintes componentes:
- O plugin
adminao chamarauth.api.removeUser(...)ouauthClient.admin.removeUser(...). - O plugin
anonymousatravés do endpoint/delete-anonymous-userou do hook after-link. - O plugin
@better-auth/scimatravés do endpointDELETE /scim/v2/Users/:userId.
Recommendations
Atualize o better-auth para a versão 1.6.11 ou posterior.
Atualize o @better-auth/scim para a versão 1.6.11 ou posterior.
Defina
session.storeSessionInDatabase como true para garantir que as cascatas do banco de dados removam as sessões.
Ao usar auth.api.removeUser, chame manualmente auth.api.revokeUserSessions({ body: { userId } }).
Para o desprovisionamento SCIM, chame auth.api.revokeUserSessions(...) após a operação SCIM DELETE.
No hook onLinkAccount para usuários anônimos, chame explicitamente internalAdapter.deleteSessions(anonymousUser.user.id) antes de emitir uma nova sessão.Exploit
Correção
Insufficient Session Expiration
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
@Better-Auth/Scim
Better Auth