
CVE-2020-8809 et CVE-2020-8810
Gurux GXDLMS Director est un programme Windows open-source permettant d'interagir avec les compteurs d'énergie via le protocole DLMS/COSEM.
Le logiciel dispose d'une fonctionnalité de mise à jour à distance pour les DLL d'extension ainsi que pour les fichiers contenant des codes OBIS (définitions spécifiques à l'appareil nécessaires pour interagir avec les compteurs intelligents).
| Identifiant CVE | Nom du ou des produits affectés et versions | Type de problème |
|---|---|---|
| CVE-2020-8809 | Gurux GXDLMS Director (toutes les versions antérieures à 8.5.1905.1301) | CWE-494 : Téléchargement de code sans vérification d'intégrité |
| CVE-2020-8810 | Gurux GXDLMS Director (toutes les versions) | CWE-23 : Traversée de chemin relative |
Résumé
Toutes les versions de Gurux GXDLMS Director antérieures à 8.5.1905.1301 contiennent un mécanisme de mise à jour pour les extensions et les codes OBIS qui fonctionne sur une connexion HTTP non chiffrée. De plus, toutes les versions contiennent un bug de traversée de chemin qui se produit lors du téléchargement des codes OBIS. Ces vulnérabilités peuvent être utilisées par l'attaquant pour exécuter du code.
Description
Un attaquant de type homme du milieu (par exemple un opérateur de réseau Wi-Fi malveillant) peut inviter l'utilisateur à télécharger des mises à jour en modifiant le contenu de gurux.fi/obis/files.xml et gurux.fi/updates/updates.xml. Ensuite, l'attaquant peut modifier le contenu des fichiers téléchargés. Dans le cas des extensions (si l'utilisateur les utilise), cela conduit à une exécution de code. Dans le cas des codes OBIS (que l'utilisateur utilise toujours car ils sont nécessaires pour communiquer avec les compteurs d'énergie), l'attaquant peut parvenir à une exécution de code en exploitant une vulnérabilité de traversée de chemin.
Lors du téléchargement des codes OBIS, le programme ne vérifie pas que les fichiers téléchargés sont bien des codes OBIS et ne vérifie pas la traversée de chemin. Cela permet à l'attaquant d'envoyer des fichiers exécutables et de les placer dans un répertoire de démarrage automatique (exécuté après redémarrage), ou de placer des DLL dans l'installation existante de GXDLMS Director (exécutées lors de la prochaine exécution de GXDLMS Director). Cela peut être utilisé pour exécuter du code même si l'utilisateur n'a aucune extension installée.
Reproduction
obis.obis/files.xml avec le contenu suivant :<files>
<file modified=”28-09-2099″ name=”Iskraemeco”>../../../../../../../../../../Users/Public/Documents/test.txt</file>
</files>
Users/Public/Documents.Users/Public/Documents/test.txt.C:\Windows\system32\drivers\etc\hosts et ajoutez-y la ligne suivante : 127.0.0.1 gurux.fi (si votre serveur HTTP n'est pas la même machine que votre Windows, remplacez 127.0.0.1 par l'IP du serveur).C:\Users\Public\Documents\ contient maintenant le fichier test.txt.Remède
Mettez à jour Gurux GXDLMS Director vers la version la plus récente.