PT-2022-23030 · Unknown · Nextauth.Js
Balazsorban44
·
Publicado
2022-08-02
·
Atualizado
2022-08-10
·
CVE-2022-35924
CVSS v3.1
9.1
Crítica
| Vetor | AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N |
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}`
}
Exploit
Correção
Incorrect Authorization
RCE
Encontrou algum problema na descrição? Tem algo a acrescentar? Fique à vontade para nos escrever 👾
Identificadores relacionados
Produtos afetados
Nextauth.Js