...
Objet | Vulnérabilité dans les clients CAS |
Référence | ESUP-2014-AVI-003 |
Date de la première version | 26 août 2014 |
Date de la dernière version | 28 août 2014 |
Source | liste de diffusion uportal-user du consortium JASIG |
Diffusion de cette version | Coordination techniquePublique |
Historique |
|
Planning prévisionnel | - |
Pièces jointes | - |
...
Une application extérieure (mise en place par le pirate) utilise le CAS de l'établissement comme mécanisme d'authentification (fonctionne si le CAS n'utilise pas de règles de filtrages "whitelist" sur les applications web cassifiées).
Un utilisateur va sur cette application (simple clique clic sur un lien par exemple) et fournit (après authentification CAS, qui se fait de manière transparente si une session CAS est déjà existante) de fait un service ticket à cette application. Le pirate utilise ce service ticket pour s'authentifier (au nom de l'utilisateur) sur l'ENT ( ou toute autre application cassifiée vulnérable, et ce alors que le ticket était à destination de l'application du pirate : exploitation de la faille).
Solutions
La mise en place des listes blanches des applications cassifiés sur le CAS de l'établissement a déjà été fortement conseillée dans l'alerte ESUP-2011-AVI-A. -
La mise à jour des librairies clientes CAS est une bonne option également, suite au signalement de cette faille les dernières versions corrigent ce problème.
Les applications web cassifiées impactées peuvent aussi proposer des mises à jour corrigeant ce problème.
- la La mise à jour EsupPortail sur le tag uportal-4.0.15 permet de corriger le problème pour l'ENT EsupPortail par exemple
- autre Autre exemple, si vous utilisez CAS comme "authentication provider" pour votre IDP shibboleth, une mise à jour de la bibliothèque cas-client-core-xxx.jar peut être faite simplement pour sécuriser votre IDP vis à vis de cette faille.
- Plus généralement sur les applications Java utilisant la librairie cliente CAS Jasig, la mise à jour d'un cas-client-core-3.x.y.jar en cas-client-core-3.3.3.jar fixe le pb, de même que le passage sur spring-security 3.2.5.RELEASE (qui embarque cas-client-core-3.3.3.jar).
Solution détaillée pour esup-uPortal 3.x
Il faut modifier 2 fichiers pom.xml :
si vous n'avez pas de fichier custom/uPortal/pom.xml, créez le :
Bloc de code cp update/uPortal/pom.xml custom/uPortal/pom.xml
puis faites la modification :
Bloc de code language diff --- custom/uPortal/pom.xml.old +++ custom/uPortal/pom.xml @@ -101,7 +101,7 @@ <ant.version>1.7.1</ant.version> <aspectjrt.version>1.6.9</aspectjrt.version> <aspectjweaver.version>1.6.9</aspectjweaver.version> - <casclient.version>3.1.10</casclient.version> + <casclient.version>3.3.3</casclient.version> <cernunnos.version>1.2.1</cernunnos.version> <commons-cli.version>1.2</commons-cli.version> <commons-codec.version>1.4</commons-codec.version> @@ -517,9 +517,15 @@ <version>${resource-aggregator.version}</version> </dependency> <dependency> - <groupId>org.jasig.cas</groupId> + <groupId>org.jasig.cas.client</groupId> <artifactId>cas-client-core</artifactId> <version>${casclient.version}</version> + <exclusions> + <exclusion> + <groupId>org.opensaml</groupId> + <artifactId>opensaml</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.jasig.portal</groupId>
si vous n'avez pas de fichier custom/uPortal/pom.xml ni update/uPortal/pom.xml, créez le :
Bloc de code cp Portail/uPortal*/uportal-impl/pom.xml custom/uPortal/uportal-impl/pom.xml
puis faites la modification :
Bloc de code language diff --- custom/uPortal/uportal-impl/pom.xml.old +++ custom/uPortal/uportal-impl/pom.xml @@ -96,11 +96,6 @@ <artifactId>esup-utils</artifactId> <version>1.03</version> </dependency> - <dependency> - <groupId>org.jasig.cas</groupId> - <artifactId>cas-client-core</artifactId> - <version>3.1.3</version> - </dependency> <!-- ***** Portal JDBC Driver ***** | The groupId, artifactId and version are configured in the root POM. @@ -118,7 +113,7 @@ </dependency> <dependency> - <groupId>org.jasig.cas</groupId> + <groupId>org.jasig.cas.client</groupId> <artifactId>cas-client-core</artifactId> </dependency>
Liens
- Alerte mail sur cas-user : https://lists.wisc.edu/read/messages?id=33836937
- https://github.com/Jasig/cas-server-security-filter
...