ManageEngine ADManager Plus est une application de gestion des identités et des accès qui permet aux administrateurs de gérer les utilisateurs, les groupes et les comptes d’ordinateurs dans les environnements Active Directory (AD) et LDAP. Cependant, une vulnérabilité a été découverte dans l’application qui permet aux attaquants distants d’exécuter du code arbitraire sur les installations affectées.
Plus précisément, la vulnérabilité se situe dans la fonction ChangePasswordAction de l’application, et est due à un manque de validation adéquate d’une chaîne fournie par l’utilisateur avant de l’utiliser pour exécuter un appel système. Un attaquant peut exploiter cette vulnérabilité pour exécuter du code dans le contexte du compte de service. Cependant, une authentification est requise pour exploiter cette vulnérabilité.
La vulnérabilité a été corrigée dans la version 7181 de ManageEngine ADManager Plus.
Pour mieux comprendre la correction, il faut comparer les deux versions vulnérable et corrigée (7180 et 7181). Seule une ligne a été modifiée dans la version 7181, à savoir la variable proxyCommand utilisée dans la fonction saveServerSettings de la classe ChangePasswordAction.
Dans la version vulnérable, la variable proxyCommand était :
proxyCommand = proxyCommand + "reg add 'HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings' /f /v ProxyUser /t REG_SZ /d " + CommonUtil.getPowerShellEscapedValue(proxySettings.getString("USER_NAME")) + ";reg add 'HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings' /f /v ProxyPass /t REG_SZ /d " + CommonUtil.getPowerShellEscapedValue(proxySettings.getString("PASSWORD"));
Dans la version corrigée, la variable proxyCommand est :
proxyCommand = proxyCommand + "$username="" + CommonUtil.getPowerShellEscapedValue(proxySettings.getString("USER_NAME")) + ""; $password="" + CommonUtil.getPowerShellEscapedValue(proxySettings.getString("PASSWORD")) + ""; reg add 'HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings' /f /v ProxyUser /t REG_SZ /d $username; reg add 'HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings' /f /v ProxyPass /t REG_SZ /d $password";
Comme on peut le constater, la différence entre les deux versions réside dans la façon dont les noms d’utilisateur et les mots de passe sont manipulés. Dans la version vulnérable, les noms d’utilisateur et les mots de passe n’étaient pas correctement échappés, ce qui permettait aux attaquants d’exécuter du code arbitraire en exploitant la vulnérabilité. Dans la version corrigée, les noms d’utilisateur et les mots de passe sont correctement échappés, ce qui élimine la vulnérabilité.
Pour conclure, la découverte de la vulnérabilité CVE-2023-29084 met en évidence l’importance de maintenir les logiciels à jour pour éviter les failles de sécurité potentielles. Les utilisateurs et les entreprises doivent être conscients des risques associés à l’utilisation de logiciels obsolètes et prendre les mesures nécessaires pour les mettre à jour dès que possible. Les éditeurs de logiciels doivent également assumer leur responsabilité en matière de sécurité et fournir des correctifs de sécurité réguliers pour protéger leurs utilisateurs contre les menaces potentielles. La collaboration et la communication entre les experts en sécurité, les utilisateurs et les éditeurs de logiciels sont essentielles pour garantir la sécurité des systèmes informatiques.
Liens Utiles: https://nvd.nist.gov/vuln/detail/CVE-2023-29084