Une vulnérabilité (CVE-2021-43798) a été découverte dans la plateforme ouverte de visualisation de données Grafana, permettant de sortir du répertoire de base et d'accéder à des fichiers arbitraires dans le système de fichiers local du serveur, selon les droits d'accès de l'utilisateur sous lequel Grafana s'exécute. Le problème est causé par un traitement incorrect du chemin « /public/plugins// », qui permettait l'utilisation des caractères « .. » pour accéder aux répertoires parents.
La vulnérabilité peut être exploitée via des requêtes URL vers des plugins prédéfinis, tels que « /public/plugins/graph/ », « /public/plugins/mysql/ » et « /public/plugins/prometheus/ » (environ 40 plugins sont préinstallés au total). Par exemple, pour accéder au fichier /etc/passwd, il était possible d'envoyer la requête « /public/plugins/prometheus/../../../../../../../../../etc/passwd ». Pour détecter les traces d'exploitation, il est recommandé de vérifier la présence du motif « .. » dans les logs du serveur HTTP.

Le problème a commencé à se manifester à partir de la version 8.0.0-beta1 et a été corrigé dans les versions Grafana 8.3.1, 8.2.7, 8.1.8 et 8.0.7, mais deux vulnérabilités similaires (CVE-2021-43813, CVE-2021-43815) ont ensuite été identifiées, apparaissant à partir des versions Grafana 5.0.0 et Grafana 8.0.0-beta3, permettant à un utilisateur authentifié de Grafana d'accéder à des fichiers arbitraires dans le système avec les extensions « .md » et « .csv » (avec des noms de fichiers en minuscules ou en majuscules uniquement), via la manipulation des caractères « .. » dans les chemins « /api/plugins/.*./markdown/.* » et « /api/ds/query ». Des mises à jour Grafana 8.3.2 et 7.5.12 ont été publiées pour corriger ces vulnérabilités.
Source : opennet.ru
