Descripción general
< 9.0.0 o la biblioteca Lock con una versión < 11.0.0 para autenticación entre dominios basada en nombre de usuario y contraseña, también conocida como inicio de sesión integrado. Además, cualquier uso entre dominios del endpoint /usernamepassword/login de Authentication API fuera de esas bibliotecas también puede verse afectado.
Después de verificar las credenciales del usuario en /usernamepassword/login, se renderiza un formulario HTML en el navegador del usuario y se ejecuta automáticamente. Envía mediante POST un (JWT) al endpoint /login/callback. Este token autenticado mantiene el estado relacionado con la identidad del usuario; esto no puede hacerse directamente debido a las restricciones de gestión de sesiones entre dominios que imponen la mayoría de los navegadores modernos. Debido a la falta de asociación de sesión, este envío de formulario es susceptible a CSRF. Un atacante con credenciales de usuario válidas en un Tenant de Auth0 puede utilizarlas para obtener un formulario de este tipo y luego emplear técnicas como la ingeniería social o el clickjacking para hacer que el navegador de una víctima lo ejecute. La víctima tendrá entonces una sesión de Login en el inquilino de Auth0 con la cuenta del atacante y, por lo tanto, cualquier aplicación posterior dentro de su federación la reconocerá como el atacante. Si el usuario realiza alguna acción mientras ha iniciado sesión maliciosamente de este modo, esas acciones y cualquier información relacionada serán visibles para el atacante.
El ataque no permite ninguna elevación de privilegios por parte del atacante, y las acciones de la víctima visibles para el atacante se limitan a los permisos que se le hayan concedido dentro del sistema. La víctima también será reconocida por completo como el atacante dentro de la federación, por lo que podrían mostrársele datos de la cuenta u otros indicios contextuales que revelen que no está operando en el contexto de su propia cuenta.
¿Me afecta?
¿Cómo solucionar esto?
/usernamepassword/login seguirá funcionando para los inicios de sesión desde la página de alojada en /login; sin embargo, al ser inicios de sesión en el mismo dominio, estarán protegidos contra CSRF. De lo contrario, desactivar el indicador deshabilitará la autenticación entre dominios en ese endpoint.
En las aplicaciones que usan auth0.js versión < 9.0.0 o Lock versión < 11.0.0, esto puede interrumpir el inicio de sesión de los usuarios. Actualizar a auth0.js versión > 9.0.0 o Lock versión > 11.0.0 restaurará la autenticación integrada con username/contraseña mediante autenticación entre orígenes (tenga en cuenta las limitaciones). También se recomienda migrar a Universal Login.
Los Private SaaS Appliances que ejecutan versiones > 14591 con el indicador de Legacy Lock API en desactivado no se ven afectados por esta vulnerabilidad.