Unknown · Nextauth.Js · CVE-2022-35924
**Nome do software vulnerável e versões afetadas**
Versões do NextAuth.js anteriores à 4.10.3
Versões do NextAuth.js anteriores à 3.29.10
**Descrição**
A vulnerabilidade permite que um invasor forje uma solicitação que envie uma lista de e-mails separados por vírgulas para o endpoint de login, resultando no envio de e-mails tanto para o endereço de e-mail do invasor quanto para o da vítima. O invasor pode então fazer login como um usuário recém-criado com o e-mail sendo uma combinação dos endereços de e-mail do invasor e da vítima, potencialmente contornando a autorização básica. Isso é possível porque a verificação `email.endsWith(“@victim.com”)` na chamada de retorno `signIn` falharia em comunicar uma ameaça ao desenvolvedor. A vulnerabilidade foi corrigida normalizando o valor do e-mail enviado ao endpoint de login.
**Recomendações**
Para versões anteriores à 4.10.3, atualize para a versão 4.10.3 ou posterior executando `npm i next-auth@latest`, `yarn add next-auth@latest` ou `pnpm add next-auth@latest`.
Para versões anteriores à 3.29.10, atualize para a versão 3.29.10 ou posterior, ou considere permanecer na versão v4.
Se a atualização não for possível, normalize a solicitação recebida usando a Inicialização Avançada, como implementar uma função para normalizar o identificador de e-mail, por exemplo:
```ts
function normalize(identifier) {
let [local, domain] = identifier.toLowerCase().trim().split(“@”)
domain = domain.split(“,”)[0]
return `${local}@${domain}`
}
```