Passer au contenu principal
Publié: 22 décembre 2017 Numéro CVE: CVE-2017-16897 Crédit: Alan Bishop

Aperçu

Une vulnérabilité a été découverte dans la bibliothèque passport-wsfed-saml2, qui touche les versions < 3.0.5. passport-wsfed-saml2 est un fournisseur d’authentification pour le protocole WS-Federation et les jetons SAML2 de Passport.js. Cette vulnérabilité permet à un attaquant d’usurper l’identité d’un autre utilisateur et, potentiellement, d’élever ses privilèges si le ne signe pas la réponse SAML complète, mais signe seulement l’assertion qu’elle contient. Un attaquant qui exploite cette vulnérabilité avec succès pourrait utiliser cette réponse pour fabriquer une requête contenant un NameIdentifier différent afin d’ouvrir une session en tant qu’un autre utilisateur. Un acteur malveillant pourrait aussi mener une attaque d’élévation de privilèges en s’authentifiant comme un utilisateur précis disposant de privilèges administratifs. L’attaquant doit déjà avoir un compte ou être en mesure d’intercepter le trafic chiffré et de modifier la réponse SAML à la volée. Cette mise à jour corrige la vulnérabilité en empêchant les attaques d’encapsulation visant les éléments Assertion et Response, tout en apportant certaines modifications défensives aux expressions XPath. Une mise à jour a également été apportée pour améliorer la consignation des informations relatives à la signature de la réponse SAML. Pour corriger cette vulnérabilité, vous devez mettre à niveau la bibliothèque.

Suis-je touché ?

Cette vulnérabilité touchait les locataires infonuagiques utilisant la connexion de fournisseur d’identité SAMLP où le fournisseur d’identité :
  • signait la réponse SAML ainsi que l’assertion
  • ne signait pas la réponse SAML, mais signait l’assertion
Aucune action n’est requise pour les locataires infonuagiques d’Auth0. La portée de la vulnérabilité s’étendait également aux utilisateurs de la stratégie passport-wsfed-saml2 avec passport.js, ce qui exige une mise à niveau de la bibliothèque (voir la section suivante).

Comment corriger ce problème ?

Les développeurs qui utilisent la bibliothèque passport-wsfed-saml2 doivent la mettre à niveau vers la version la plus récente : 3.0.5. Les packages mis à jour sont disponibles sur npm. Pour recevoir les correctifs supplémentaires à venir, assurez-vous que votre fichier package.json est configuré pour accepter les mises à jour correctives et mineures de nos bibliothèques.
{
  "dependencies": {
    "passport-wsfed-saml2": "^3.0.5"
  }
}

Cette mise à jour aura-t-elle une incidence sur mes utilisateurs ?

Non. Ce correctif s’applique à la bibliothèque utilisée par votre application, mais n’aura pas d’incidence sur vos utilisateurs, leur state actuel ni sur les sessions existantes.