Vulnerabilidad en NextAuth.js (CVE-2022-35924)
Severidad:
CRÍTICA
Type:
No Disponible / Otro tipo
Fecha de publicación:
02/08/2022
Última modificación:
10/08/2022
Descripción
NextAuth.js es una completa solución de autenticación de código abierto para aplicaciones Next.js. Los usuarios de "next-auth" que usan el "EmailProvider" en versiones anteriores a "4.10.3" o "3.29.10" están afectados. Si un atacante pudiera falsificar una petición que enviara una lista de correos electrónicos separados por comas (por ejemplo: "attacker@attacker.com,victim@victim.com") al endpoint de inicio de sesión, NextAuth.js enviaría correos electrónicos tanto al atacante como a las direcciones de correo electrónico de la víctima. El atacante podría entonces iniciar sesión como un usuario recién creado con el correo electrónico "attacker@attacker.com,victim@victim.com". Esto significa que una autorización básica como "email.endsWith("@víctima.com")" en la llamada de retorno "signIn" no comunicaría una amenaza al desarrollador y permitiría al atacante saltarse la autorización, incluso con una dirección "@atacante.com". Esta vulnerabilidad ha sido parcheada en versiones "v4.10.3" y "v3.29.10" al normalizar el valor del correo electrónico que es enviado al punto final de inicio de sesión antes de acceder a él en cualquier otro lugar. También hemos añadido una llamada de retorno "normalizeIdentifier" en la configuración de "EmailProvider", donde puedes ajustar aún más tus requisitos para lo que tu sistema considera una dirección de correo electrónico válida. (Por ejemplo: cumplimiento estricto del RFC2821). Es recomendado a usuarios actualizar. No se presentan mitigaciones conocidas para esta vulnerabilidad. Si por alguna razón no puede actualizar, puede normalizar la petición entrante usando la Inicialización Avanzada
Impacto
Puntuación base 3.x
9.10
Severidad 3.x
CRÍTICA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:a:nextauth.js:next-auth:*:*:*:*:*:node.js:*:* | 3.29.10 (excluyendo) | |
cpe:2.3:a:nextauth.js:next-auth:*:*:*:*:*:node.js:*:* | 4.0.0 (incluyendo) | 4.10.3 (excluyendo) |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://en.wikipedia.org/wiki/Email_address#Local-part
- https://github.com/nextauthjs/next-auth/commit/afb1fcdae3cc30445038ef588e491d139b916003
- https://github.com/nextauthjs/next-auth/security/advisories/GHSA-xv97-c62v-4587
- https://next-auth.js.org/configuration/callbacks#sign-in-callback
- https://next-auth.js.org/configuration/initialization#advanced-initialization
- https://next-auth.js.org/providers/email
- https://next-auth.js.org/providers/email#normalizing-the-e-mail-address
- https://nodemailer.com/message/addresses