Des milliers de serveurs Openfire restent vulnérables à CVE-2023-32315, une vulnérabilité activement exploitée et de traversée de chemin qui permet à un utilisateur non authentifié de créer de nouveaux comptes d’administrateur.

Openfire est un serveur de discussion open source (XMPP) basé sur Java et largement utilisé, téléchargé 9 millions de fois.

Le 23 mai 2023, il a été révélé que le logiciel était affecté par un problème de contournement d’authentification qui affectait la version 3.10.0, publiée en avril 2015, jusque-là.

Les développeurs d’Openfire ont publié des mises à jour de sécurité dans les versions 4.6.8, 4.7.5 et 4.8.0 pour résoudre ce problème. Pourtant, en juin, il a été signalé [1, 2] que la faille avait été activement exploitée pour créer des utilisateurs administrateurs et télécharger des plugins malveillants sur des serveurs non corrigés.

Comme le souligne Jacob Baines, chercheur en vulnérabilités chez VulnCheck, la communauté OpenFire ne s’est pas précipitée pour appliquer les mises à jour de sécurité, avec plus de 3 000 serveurs restant vulnérables.

Pour aggraver les choses, Baines affirme qu’il existe un moyen d’exploiter la faille et de télécharger des plugins sans créer de compte administrateur, ce qui le rend beaucoup plus invitant et moins bruyant pour les cybercriminels.

Trop de serveurs non patchés
VulnCheck rapporte que les analyses Shodan révèlent 6 324 serveurs Openfire connectés à Internet, dont 50 % (3 162 serveurs) restent toujours vulnérables au CVE-2023-32315 en raison de l’exécution d’une version obsolète.

Résultats de l’analyse Shodan

Seuls 20 % des utilisateurs ont appliqué des correctifs, 25 % utilisent une version antérieure à 3.10.0, date à laquelle la vulnérabilité a été introduite dans le logiciel, et 5 % supplémentaires exécutent des forks du projet open source qui peuvent ou non être impactés.

VulnCheck commente que même si ce chiffre n’est pas impressionnant, il est substantiel compte tenu du rôle que jouent ces serveurs dans l’infrastructure de communication, dans le traitement des informations sensibles, etc.

Un meilleur PoC
Les exploits publics actuels pour CVE-2023-32315 reposent sur la création d’un utilisateur administrateur pour permettre aux attaquants de télécharger des plugins Java JAR malveillants qui ouvrent des shells inversés ou exécutent des commandes sur les serveurs compromis.

Plugin malveillant téléchargé sur un serveur vulnérable

Des exemples concrets d’exploitation incluent les acteurs malveillants derrière le botnet de crypto-minage Kinsing, qui exploitent la vulnérabilité pour installer un plugin Openfire personnalisé qui lance un shell inversé sur le serveur vulnérable.

Cependant, les exploits existants visant à créer des utilisateurs administrateurs sont bruyants, ce qui permet aux défenseurs de détecter facilement les violations à partir des journaux d’audit. Malheureusement, le rapport de VulnCheck met en évidence une manière plus furtive d’exploiter la faille sans créer de comptes administrateur aléatoires.

Preuve de l’attaque sur les journaux de sécurité d’Openfire

Dans leur exemple PoC, les analystes présentent un moyen d’extraire le jeton JSESSIONID et CSRF en accédant directement à « plugin-admin.jsp », puis en téléchargeant le plugin JAR via une requête POST.

La logique PoC de VulnCheck

Le plugin est accepté et installé sur le serveur vulnérable, et son webshell est accessible sans nécessiter de compte administrateur.

Webshell dans le plugin téléchargé

Parce que cette attaque ne laisse aucune trace dans les journaux de sécurité, elle est beaucoup plus furtive que les exploits actuels et élimine les opportunités de détection pour les défenseurs.

Comme CVE-2023-32315 est déjà activement exploité, notamment par un malware botnet, le PoC de VulnCheck pourrait alimenter une deuxième vague d’attaques plus redoutable.

Par conséquent, les administrateurs des serveurs Openfire qui n’ont pas mis à niveau vers une version corrigée sont invités à le faire dès que possible.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *