Unknown · Better Auth · CVE-2026-67334
**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 `admin` ao chamar `auth.api.removeUser(...)` ou `authClient.admin.removeUser(...)`.
- O plugin `anonymous` através do endpoint `/delete-anonymous-user` ou do hook after-link.
- O plugin `@better-auth/scim` através do endpoint `DELETE /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.