CVE-2018-6874 : Faille de sécurité dans le service d’authentification Auth0
Date de publication : 4 avril 2018
Numéros CVE : CVE-2018-6874
Crédit : Interne
Présentation
Une vulnérabilité a été identifiée dans le service d’authentification Auth0. Les locataires du service avec le drapeau Legacy Lock API (API Lock héritée) activé dans le tableau de bord de gestion du service sont concernés. La désactivation du drapeau peut interrompre les applications utilisant la bibliothèque auth0.js avec la version < 9.0.0
ou la bibliothèque Lock avec la version < 11.0.0
pour l’authentification interdomaine basée sur le nom d’utilisateur/mot de passe - également connue sous le nom de embedded login. De plus, toute utilisation interdomaine du point de terminaison de l’Authentication API /usernamepassword/login
en dehors de ces bibliothèques peut également être affectée.
Après la vérification des informations d’identification de l’utilisateur sur le point de terminaison /usernamepassword/login
, un formulaire HTML est rendu dans le navigateur de l’utilisateur et exécuté automatiquement. Il envoie une requête POST contenant un jeton Web JSON (JWT) au point de terminaison /login/callback
. Ce jeton authentifié conserve l’état concernant l’identité de l’utilisateur; cela ne peut pas être effectué directement en raison des restrictions de gestion des sessions interdomaine maintenues par la plupart des navigateurs modernes. En raison de l’absence de liaison de session, cette soumission de formulaire est vulnérable aux attaques CSRF. Un attaquant possédant des identifiants utilisateur valides pour un locataire Auth0 peut exploiter ces derniers pour obtenir un tel formulaire, puis utiliser des techniques comme l’ingénierie sociale ou le détournement de clic pour pousser le navigateur d’une victime à l’exécuter. La victime disposera alors d’une session de connexion sur le locataire Auth0 sous le compte de l’attaquant - et sera donc reconnue comme l’attaquant par toute application en aval de sa fédération. Si l’utilisateur entreprend des actions alors qu’il est connecté de manière malveillante, ces actions et toutes les informations associées seront visibles pour l’attaquant.
L’attaque ne permet aucune escalade de privilèges de la part de l’attaquant. Les actions de la victime visibles par l’attaquant sont strictement limitées aux autorisations qui ont été accordées à ce dernier dans le système. De plus, la victime sera entièrement identifiée comme l’agresseur au sein de la fédération, ce qui pourrait entraîner l’affichage d’informations de compte ou d’autres indices contextuels indiquant qu’elle n’agit pas avec son propre compte.
Cela me concerne-t-il?
Vous êtes concerné si vous utilisez l’authentification par nom d’utilisateur/mot de passe (avec n’importe quelle base de données et/ou connexion) pour votre locataire Auth0, et le drapeau API Legacy Lock dans le Auth0 Dashboard est visible et marqué.
Comment résoudre ce problème?
Pour atténuer la vulnérabilité, désactivez le drapeau. Le point de terminaison /usernamepassword/login
fonctionnera toujours pour les connexions à partir de la page de connexion universelle hébergée sur /login
, cependant, celles-ci - en tant que connexions au même domaine - seront protégées contre le CSRF. Dans le cas contraire, l’activation ou la désactivation du drapeau désactivera l’authentification interdomaine sur ce point de terminaison.
Pour les applications utilisant une version d’auth0.js < 9.0.0
ou une version de < 11.0.0
, cela peut interrompre les connexions des utilisateurs. La mise à niveau vers une version d’auth0.js > 9.0.0
ou une version de Lock > 11.0.0
restaurera l’authentification par nom d’utilisateur/mot de passe intégrée à l’aide de l’authentification interorigine (notez les limitations). Les applications sont également encouragées à migrer vers la connexion universelle.
Les appareils SaaS privés exécutant des versions > 14591
avec le drapeau Legacy Lock API désactivé, ne sont pas affectés par cette vulnérabilité.
Cette mise à jour aura-t-elle des répercussions sur mes utilisateurs?
Si la Legacy Lock API est désactivée sans que les applications n’aient été migrées, toutes les connexions utilisateur utilisant la fonctionnalité affectée seront interrompues. Auth0 a l’intention d’appliquer la désactivation de la Legacy Lock API pour tous les locataires le 16 juillet 2018. Le choix de la migration peut affecter l’expérience utilisateur spécifique lors de la connexion à votre service, cependant les utilisateurs, leurs informations et leurs sessions ne seront pas autrement impactés.