À l’occasion d’une recherche standard en tant que membre du département de recherche sur les vulnérabilités d’Outpost24 – Ghost Labs -, j’ai découvert quatre vulnérabilités différentes dans Nagios XI (version 5.11.1 et antérieures). Trois de ces vulnérabilités (CVE-2023-40931, CVE-2023-40933 et CVE-2023-40934) permettent aux utilisateurs, avec différents niveaux de privilèges, d’accéder aux champs de la base de données via des injections SQL. Les données obtenues à partir de ces vulnérabilités peuvent être utilisées pour accroître les privilèges dans l’application et obtenir des données utilisateur sensibles comme les hachages de mots de passe et des jetons d’API. 

La quatrième vulnérabilité (CVE-2023-40932) permet un Cross-Site Scripting via le composant Custom Logo, qui s’affichera sur chaque page, y compris la page de connexion. Ce composant peut être utilisé pour lire et modifier les données de la page, notamment les mots de passe en texte clair des formulaires de connexion. 

Toutes ces vulnérabilités ont été résolues le 11 septembre 2023. Il est conseillé aux utilisateurs de se mettre à jour avec la version 5.11.2 ou une version ultérieure. 

Qu’est-ce que Nagios XI ? 

Nagios XI est une solution de surveillance populaire et largement utilisée pour la surveillance de l’infrastructure informatique et du réseau. Il s’agit de la version commerciale de la plateforme de supervision open-source Nagios Core. Elle fournit des fonctionnalités supplémentaires pour simplifier le processus de gestion d’environnements informatiques complexes. 

En raison de l’accès requis par Nagios XI, il est souvent déployé dans des environnements à hauts privilèges, ce qui en fait une cible intéressante pour un attaquant. 

Les quatre vulnérabilités 

1. Injection SQL dans la bannière reconnaissant le point de terminaison (CVE-2023-40931) 

Nagios XI propose des « bannières d’annonce » qui peuvent optionnellement être acceptées par les utilisateurs. Le point de terminaison de cette fonctionnalité est vulnérable à une attaque par injection SQL. 

Lorsqu’un utilisateur accepte une bannière, une requête POST est envoyée à `/nagiosxi/admin/banner_message-ajaxhelper.php` avec les données POST consistant en l’action prévue et l’ID du message – `action=acknowledge banner message&id=3`. 

Le paramètre ID est supposé être fiable mais provient directement du client sans vérification. Cela conduit à une injection SQL là où un utilisateur authentifié avec peu ou pas de privilèges peut récupérer des données sensibles – les tables `xi_session` et `xi_users` par exemple – contenant des données comme les emails, les noms d’utilisateurs, les mots de passe hachés, les tokens API, et les tickets back-end. 

Cette vulnérabilité ne nécessite pas l’existence d’un ID de bannière d’annonce valide, ce qui signifie qu’elle peut être exploitée par un attaquant à tout moment. 

2. Injection SQL dans l’escalade d’hôte/de service dans CCM (CVE-2023-40934) 

Le Core Configuration Manager de Nagios XI permet à un utilisateur authentifié ayant les privilèges de gérer les escalades d’hôtes afin d’effectuer des requêtes arbitraires dans la base de données à travers le point de terminaison `/nagiosxi/includes/components/ccm/index.php`. 

Les paramètres `tfFirstNotif`, `tfLastNotif`, et `tfNotifInterval` sont supposés être de confiance bien qu’ils proviennent directement du client à travers une requête POST. 

Cette vulnérabilité entraîne le même accès à la base de données que les autres vulnérabilités d’injection SQL, mais nécessite des privilèges supplémentaires par rapport à CVE-2023-40931. 

3. Injection SQL dans les paramètres de la bannière d’annonce (CVE-2023-40933) 

Nagios XI a une page administrative pour les paramètres de la bannière d’annonce, qui contient une vulnérabilité d’injection SQL dans le point de terminaison `/nagiosxi/admin/banner message-ajaxhelper.php`. 

Lors de l’exécution de l’action `update_banner_message_settings` sur le point de terminaison affecté, le paramètre `id` est supposé être de confiance et est concaténé dans une requête de base de données sans aucune vérification. Ceci permet à un attaquant de modifier la requête. 

Une exploitation réussie donne le même accès à la base de données que les deux autres vulnérabilités d’injection SQL, mais nécessite des privilèges supplémentaires par rapport à CVE-2023-40931. 

4. Scripts intersites dans le logo personnalisé (CVE-2023-40932) 

Nagios XI peut être personnalisé avec un logo d’entreprise, qui sera affiché sur l’ensemble du produit. Cela inclut la page d’accueil, diverses pages administratives et la page de connexion. 

En raison d’une vulnérabilité de script intersites dans cette fonctionnalité, un attaquant peut injecter du JavaScript arbitraire qui va évoluer dans le navigateur de n’importe quel utilisateur. Cela pourra être utilisé pour lire et modifier les données de la page, ainsi que pour effectuer des actions au nom de l’utilisateur affecté. De plus, étant donné que cette fonctionnalité s’affiche sur la page de connexion, les informations d’identification en texte clair pourront être volées dans les navigateurs des utilisateurs au fur et à mesure qu’ils les saisissent. 

Historique des événements 

Nous avons mis à jour et révélé les vulnérabilités à Nagios en août 2023. Voici ce qui s’est passé ensuite : 

04-08-2023 – Contact avec le fournisseur et remise d’un rapport 

04-08-2023 – Le fournisseur accuse réception du rapport et commence à l’examiner 

11-08-2023 – Le fournisseur confirme les 4 vulnérabilités 

11-08-2023 – Contact avec la MITRE pour l’attribution des CVE 

01-09-2023 – CVEs réservés par la MITRE 

07-09-2023 – Publication coordonnée pour le 19-09-2023 

11-09-2023 – Nagios XI 5.11.2 est publié avec les correctifs de sécurité appliqués 

19-09-2023 – Révélation complète des vulnérabilités 

L’importance des tests de sécurité des applications 

Dans le cadre d’une attaque ciblée, ces types de vulnérabilités sont relativement faciles à exploiter. Comme l’ont montré de récentes attaques (notamment le piratage de SolarWinds), les plateformes de gestion informatique sont également des cibles potentielles. En l’absence de tests continus de sécurité des applications, les données cruciales de l’entreprise sont en danger. Outpost24 fournit des solutions de sécurité et des services de test d’intrusion avec un accès direct à nos experts en sécurité pour des conseils de remédiation et de validation. Testez vos applications en temps réel pour détecter les dernières vulnérabilités avec Outpost24.