Les clients de la plateforme cloud Microsoft Azure utilisant Linux sur des machines virtuelles ont été confrontés à une vulnérabilité critique (CVE-2021-38647) permettant l'exécution de code à distance avec des droits root. Cette vulnérabilité, nommée OMIGOD, est notable en ce sens qu'elle est présente dans l'application OMI Agent, qui s'installe discrÚtement dans les environnements Linux.
L'OMI Agent s'installe et s'active automatiquement lors de l'utilisation de services tels que Azure Automation, Azure Automatic Update, Azure Operations Management Suite, Azure Log Analytics, Azure Configuration Management, Azure Diagnostics et Azure Container Insights. Par exemple, les environnements Linux dans Azure ayant la surveillance activée sont vulnérables. L'agent fait partie du paquet open-source OMI (Open Management Infrastructure Agent) qui implémente la pile DMTF CIM/WBEM pour gérer l'infrastructure IT.
L'OMI Agent s'installe dans le systÚme sous l'utilisateur omsagent et crée des configurations dans /etc/sudoers pour exécuter une série de scripts avec des privilÚges root. Lors de l'exécution de certains services, des sockets réseau écoutants sont créés sur les ports réseau 5985, 5986 et 1270. Une analyse dans le service Shodan révÚle la présence de plus de 15 000 environnements Linux vulnérables sur le réseau. Actuellement, un prototype fonctionnel d'exploit permettant d'exécuter son code avec des droits root sur de tels systÚmes est déjà disponible publiquement.
Le problĂšme est aggravĂ© par le fait qu'Azure ne documente pas clairement l'utilisation de l'OMI et que l'OMI Agent s'installe sans avertissement : il suffit d'accepter les conditions du service choisi lors de la configuration de l'environnement, et l'OMI Agent sera automatiquement activĂ©, c'est-Ă -dire que la plupart des utilisateurs ne soupçonnent mĂȘme pas sa prĂ©sence.
La mĂ©thode d'exploitation est triviale : il suffit d'envoyer une requĂȘte XML Ă l'agent en supprimant l'en-tĂȘte responsable de l'authentification. L'OMI utilise l'authentification lors de la rĂ©ception de messages de contrĂŽle, vĂ©rifiant que le client a le droit d'envoyer une commande donnĂ©e. La nature de la vulnĂ©rabilitĂ© rĂ©side dans le fait que la suppression de l'en-tĂȘte 'Authentication' dans le message empĂȘche l'authentification. serveur considĂšre le passage de la vĂ©rification comme rĂ©ussi, accepte le message de contrĂŽle et permet l'exĂ©cution de commandes avec des droits root. Pour exĂ©cuter des commandes arbitraires dans le systĂšme, il suffit d'utiliser dans le message la commande standard ExecuteShellCommand_INPUT. Par exemple, pour dĂ©marrer l'outil « id », il suffit d'envoyer la requĂȘte : curl -H "Content-Type: application/soap+xml;charset=UTF-8" -k --data-binary "@http_body.txt" https://10.0.0.5:5986/wsman âŠ
id
0
La société Microsoft a déjà publié une mise à jour OMI 1.6.8.1 qui corrige la vulnérabilité, mais elle n'est pas encore disponible pour les utilisateurs de Microsoft Azure (dans les nouveaux environnements, l'ancienne version d'OMI est encore installée). La mise à jour automatique de l'agent n'est pas supportée, donc les utilisateurs doivent procéder à la mise à jour du package manuellement, en utilisant les commandes « dpkg -l omi » sur Debian/Ubuntu ou « rpm -qa omi » sur Fedora/RHEL. Comme solution de contournement pour la protection, il est recommandé de bloquer l'accÚs aux ports réseau 5985, 5986 et 1270.
En plus de CVE-2021-38647, OMI 1.6.8.1 corrige également trois vulnérabilités (CVE-2021-38648, CVE-2021-38645 et CVE-2021-38649) permettant à un utilisateur local non privilégié d'exécuter son code avec des droits root.
Source : opennet.ru
