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

VetorAV: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 👾

Enumeração de Fraquezas

Identificadores relacionados

CVE-2022-35924
GHSA-XV97-C62V-4587

Produtos afetados

Nextauth.Js