Les avis de sécurité du consortium ESUP-Portail portent sur des vulnérabilités des logiciels diffusés par le consortium. Il est de la responsabilité de chacun des destinataires de ce document de ne pas le rediffuser en dehors du cadre pour lequel il a été écrit, pour des raisons évidentes de sécurité des Systèmes d'Information de tous les établissements du consortium ESUP-Portail.
Objet | Vulnérabilité dans uPortal |
Référence | ESUP-2014-AVI-002 |
Date de la première version | 26 août 2014 |
Date de la dernière version | 26 août 2014 |
Source | liste de diffusion uportal-user du consortium JASIG |
Diffusion de cette version | Correspondants sécurité du consortium ESUP-Portail |
Historique |
|
Planning prévisionnel | - |
Pièces jointes | - |
Un utilisateur capable de s'authentifier sur le CAS de l'établissement peut s'identifier sur l'ENT sous un autre login simplement via la construction et l'invocation d'une url (comportant notamment le login ciblé).
L'alerte concerne au moins les uPortal en 3.x et 4.x antérieurs au 21 Août 2014 (antérieurs à 4.0.15 / 4.1.1), et certainement les versions 2.x et inférieures également.
Elle concerne les uPortal utilisant l'authentification CAS avec une configuration classique de celle-ci : cela concerne donc la majorité des ENT EsupPortail de notre communauté.
Modifiez votre fichier security.properties (cf la description détaillée du workaround par Jasig) :
En lieu et place de
principalToken.root=userName credentialToken.root=password |
mettre
principalToken.root= credentialToken.root= principalToken.root.simple=userName credentialToken.root.simple=password |
La version uportal-4.0.15-esup-1 pour le package Esup corrige le problème. Si vous gérez votre ENT via Git, vous devriez ainsi pouvoir faire une mise à jour assez rapidement (git pull ou git merge puis redéploiement et redémarrage).
Le correctif dans le code ferme la vulnératibilité pour CAS, nous vous conseillons fortement aussi de modifier le fichier uportal-war/src/main/resources/properties/security.properties .
--- a/uportal-war/src/main/resources/properties/security.properties +++ b/uportal-war/src/main/resources/properties/security.properties @@ -40,8 +40,10 @@ root.simple=org.jasig.portal.security.provider.SimpleSecurityContextFactory ## Answers what tokens are examined in the request for each context during authentication. ## A subcontext only needs to set its tokens if it differs from those of the root context. -principalToken.root=userName -credentialToken.root=password +principalToken.root= +credentialToken.root= +principalToken.root.simple=userName +credentialToken.root.simple=password credentialToken.root.cas=ticket ## Answers where the user will be redirected when log out occurs. Each security context can have one. |
Le fichier à modifier est update/uPortal/uportal-impl/src/main/resources/properties/security.properties ou custom/uPortal/uportal-impl/src/main/resources/properties/security.properties :
--- update/uPortal/uportal-impl/src/main/resources/properties/security.properties +++ update/uPortal/uportal-impl/src/main/resources/properties/security.properties @@ -42,8 +42,10 @@ root.remote=org.jasig.portal.security.provider.RemoteUserSecurityContextFactory ## Answers what tokens are examined in the request for each context during authentication. ## A subcontext only needs to set its tokens if it differs from those of the root context. -principalToken.root=userName -credentialToken.root=password +principalToken.root= +credentialToken.root= +principalToken.root.simple=userName +credentialToken.root.simple=password @esup.db.auth.comment@credentialToken.root.cas=ticket ## Answers where the user will be redirected when log out occurs. Each security context can have one. |
Il faut ensuite faire
ant init deploy |
Puis redémarrer tomcat.
Le fichier à modifier est update/uPortal/properties/security.properties ou custom/uPortal/properties/security.properties :
--- update/uPortal/properties/security.properties~ 2009-12-10 14:59:10.000000000 +0100 +++ update/uPortal/properties/security.properties 2014-08-26 15:23:03.798027998 +0200 @@ -53,8 +53,10 @@ # Answers what tokens are examined in the request for each context during authentication. # A subcontext only needs to set it's tokens if it differs from those of the root context. -principalToken.root=userName -credentialToken.root=password +principalToken.root= +credentialToken.root= +principalToken.root.simple=userName +credentialToken.root.simple=password # Answers where the user will be redirected when log out occurs. Each security context can have one. # (See comments in the LogoutServlet class) |
Il faut ensuite faire
ant init deploy |
Puis redémarrer tomcat.