Vulnérabilité critique dans VMware VCenter

CVE-2021-22005 [Score CVSS v3.1: 9, 8]

Le serveur VCenter contient une vulnérabilité au niveau du service Analytics du processus de téléchargement de fichiers. L’exploitation malveillante peut être effectuée via le port 443 de VCenter par un attaquant en téléchargeant un programme malveillant. Ce programme téléchargé au serveur va par la suite pouvoir provoquer l’exécution de code arbitraire. En cas d’impossibilité de déployer le correctif, une solution de contournement existe, celle-ci est détaillée exhaustivement sur cette page dédiée : https://kb.vmware.com/s/article/85717 (présenté dans la section contournement provisoire). 

Il est recommandé de mettre à jour son environnement au plus vite car un code d'exploitation de la vulnérabilité a été publié et semble être exploité.

Risques
+
  • Exécution de code arbitraire

Vecteurs d'infection
+

Sans objet.


Systèmes affectés
+
  • Serveur VMware VCenter-Server V-Sphere version 7.0
  • Serveur VMware VCenter-Server V-Sphere version 6.7
  • Serveur VMware VCenter-Server Cloud Fondation version 3.x et 4.x

Contournement provisoire
+

Etape 1 : il faut connecter le vCSA via une session SSH avec privilège root.

Etape 2 : exécuter la commande  ls -al /var/tmp/

Etape 3 : exécuter les commandes ci-dessous (et bien respecter le chemin du fichier). Aussi, la version python à utiliser dépend de la version exacte de VCenter, ce script peut être exécuté via python, python 3.5 et 3.7.

python /var/tmp/VMSA-2021-0020.py
or
python3.5 /var/tmp/VMSA-2021-0020.py
or
python3.7 /var/tmp/VMSA-2021-0020.py

Le script va s’exécuter, il va faire : une sauvegarde du fichier non-modifié ph-web.xml, mettre à jour ph-web.xml, sauvegarder le fichier à jour ph-web.xml, relancer le système analytique, puis confirmer que l’appareil n’est plus vulnérable.

 

Solution, option 2.

Cette seconde option est manuelle.

Etape 1 : il faut connecter le vCSA via une session SSH avec privilège root.

Etape 2 : il faut sauvegarder le fichier /etc/vmware-analytics/ph-web.xml avec la commande :

cp /etc/vmware-analytics/ph-web.xml /etc/vmware-analytics/ph-web.xml.backup

Etape 3 à 12 : ouvrir dans un éditeur de texte : /etc/vmware-analytics/ph-web.xml

vi /etc/vmware-analytics/ph-web.xml

Lorsque le texte est affiché, appuyé la lettre « I » pour basculer dans le mode insert. Naviguer <list>, presser la touche entrer et écrire <!—. Naviguer vers </bean> juste après la ligne <property name="servlet" ref="phPhStgApiServlet"/>. Pour les versions 6.7 u1B ou plus tôt, naviguer vers </bean> juste après la ligne <property name="servlet" ref="phTelemetryServlet"/>”. Appuyer sur entrer puis écrire -->, appuyer sur le bouton Esc pour quitter le mode insert. Sauver et quitter le fichier en entrant :wq et appuyer sur entré.

Etape 13 : relancer le service vmware-analytics en entrant : service-control --restart vmware-analytics.

Etape 14 : pour confirmer que la solution de contournement a fonctionné, il faut entrer la commande suivante : curl -X POST "http://localhost:15080/analytics/telemetry/ph/api/hyper/send?_c&_i=test" -d "Test_Workaround" -H "Content-Type: application/json" -v 2>&1 | grep http

La solution fonctionne si une erreur 404 s’affiche.


Mesures réactives
+

Solutions
+

Sans objet.