Vulnerabilidad en NextAuth.js (CVE-2022-31127)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-79
Neutralización incorrecta de la entrada durante la generación de la página web (Cross-site Scripting)
Fecha de publicación:
06/07/2022
Última modificación:
14/07/2022
Descripción
NextAuth.js es una completa solución de autenticación de código abierto para aplicaciones Next.js. Un atacante puede pasar una entrada comprometida al correo electrónico [signin endpoint](https://next-auth.js.org/getting-started/rest-api#post-apiauthsigninprovider) que contiene algún HTML malicioso, engañando al servidor de correo electrónico para que lo envíe al usuario, y así poder llevar a cabo un ataque de phishing. Eg.: "balazs@email.com, (a href="http://attacker.com")Before signing in, claim your money!(/a)". Anteriormente era enviado a "balazs@email.com", y el contenido del correo electrónico que contenía un enlace al sitio del atacante era renderizado en el HTML. Esto ha sido mitigado en las siguientes versiones, simplemente no renderizando ese correo electrónico en el HTML, ya que debería ser obvio para el receptor qué correo electrónico fue usado: los usuarios de next-auth versiones v3 anteriores a 3.29.8 están afectados. (Recomendamos actualizar a la versión v4, ya que la versión v3 es considerada sin mantenimiento. Los usuarios de next-auth versiones v4 anteriores a 4.9.0 están afectados. Si por alguna razón no puedes actualizar, la mitigación requiere que sea saneado el parámetro "email" que es pasado a "sendVerificationRequest" y es mostrado en el HTML. Si no has creado un "sendVerificationRequest" personalizado, sólo tienes que actualizar. En caso contrario, asegúrese de excluir "email" del cuerpo del HTML o de sanearlo eficazmente
Impacto
Puntuación base 3.x
6.10
Gravedad 3.x
MEDIA
Puntuación base 2.0
4.30
Gravedad 2.0
MEDIA
Productos y versiones vulnerables
| CPE | Desde | Hasta |
|---|---|---|
| cpe:2.3:a:nextauth.js:next-auth:*:*:*:*:*:node.js:*:* | 3.29.8 (excluyendo) | |
| cpe:2.3:a:nextauth.js:next-auth:*:*:*:*:*:node.js:*:* | 4.0.0 (incluyendo) | 4.9.0 (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://github.com/nextauthjs/next-auth/commit/ae834f1e08a4a9915665eecb9479c74c6b039c9c
- https://github.com/nextauthjs/next-auth/releases/tag/next-auth%40v4.9.0
- https://github.com/nextauthjs/next-auth/security/advisories/GHSA-pgjx-7f9g-9463
- https://next-auth.js.org/getting-started/upgrade-v4
- https://next-auth.js.org/providers/email#customizing-emails



