
IBM WebSphere désérialisation de données non fiables - IBM WebSphere 7,8,8.5,9
Désérialisation de données non fiables dans IBM WebSphere - IBM WebSphere 7,8,8.5,9
Titre : Désérialisation de données non fiables dans IBM WebSphere
Application : IBM WebSphere 7,8,8.5,9
Description : Le serveur d'application désérialise des données non fiables lorsque le
cookie WASPostParam est présent. Cela peut entraîner un déni de service par
épuisement des ressources et potentiellement une exécution de code à distance.
Auteurs : Federico Dotta <[email protected]>
Maurizio Agazzini <[email protected]>
Statut du fournisseur : Corrigé (PI62375)
Candidat CVE : Le projet Common Vulnerabilities and Exposures a attribué le nom
CVE-2016-5983 à ce problème.
Références : http://lab.mediaservice.net/advisory/2016-02-websphere.txt
http://lab.mediaservice.net/code/websphere_payload.zip
http://www-01.ibm.com/support/docview.wss?uid=swg21990060
Lors de l'utilisation d'une authentification par formulaire personnalisé, IBM WebSphere définit automatiquement les cookies WASPostParam et WASReqURL lorsque le cookie de session LtpaToken2 est invalide. Les données contenues dans ces cookies sont utilisées lorsque l'utilisateur se reconnecte pour récupérer la dernière page visitée et les paramètres associés.
WASPostParam est un objet Java sérialisé qui est désérialisé sans vérifier le type d'objet. Ce comportement peut être exploité pour provoquer un déni de service et potentiellement exécuter du code arbitraire.
Les objets pouvant causer le DoS sont basés sur des charges utiles connues et divulguées provenant de :
Actuellement, il n'existe pas de chaîne connue permettant l'exécution de code sur IBM WebSphere, mais de nouvelles chaînes sont découvertes chaque jour.
L'attaque peut être reproduite comme suit :
créer une application avec authentification par formulaire personnalisé
après la connexion de l'utilisateur, le LtpaToken2 est défini par le serveur d'application
effectuer une requête HTTP GET contenant le cookie WASPostParam avec l'un de ces contenus :
01_BigString_limited_base64.txt : c'est un objet chaîne ; le serveur répondra normalement (taille d'objet similaire au suivant).
02_SerialDOS_limited_base64.txt : le serveur d'application nécessitera environ 2 minutes pour exécuter la requête avec une utilisation CPU à 100%.
03_BigString_base64.txt : c'est un objet chaîne ; le serveur répondra normalement (taille d'objet similaire au suivant).
04_SerialDOS_base64.txt : le serveur d'application nécessitera un temps inconnu pour exécuter la requête avec une utilisation CPU à 100%.
Cette vulnérabilité affecte les versions et éditions suivantes d'IBM WebSphere Application Server et versions antérieures :
Liberty 16.0.0.2
9.0.0.1
8.5.5.10
8.0.0.12
7.0.0.41
Appliquer le correctif provisoire PI62375
http://www-01.ibm.com/support/docview.wss?uid=swg24042712
Preuve de concept.
Chronologie
20/08/2016 - Première communication envoyée à IBM PSIRT (psirt at us.ibm.com)
22/08/2016 - Réponse d'IBM, avis PSIRT 6345 attribué au bogue
05/10/2016 - Communication d'IBM avec les informations sur le correctif (PI62375)
07/10/2016 - Avis de sécurité publié