Vérification des vulnérabilités CVE dans GLPI

Le module CVE Scan de NexTool croise votre version de GLPI avec le NVD et la GitHub Advisory Database et audite 19 points de l'environnement (PHP, en-têtes, permissions), en produisant un Security Score de 0 à 100. Voyez comment il fonctionne, comment l'activer et les erreurs de config qui échouent le plus sur le terrain.

Votre instance GLPI est-elle exposée à des vulnérabilités déjà répertoriées sans que vous le sachiez ? Dans la plupart des parcs que nous reprenons en maintenance, personne ne peut dire immédiatement quelle CVE touche la version en production ni si PHP a les bons drapeaux de sécurité. Le module CVE Scan Vulnérabilités de NexTool croise la version installée avec des bases publiques de CVE et audite 19 points critiques de l'environnement en quelques secondes, en produisant un Security Score visuel.

Le problème

Les équipes de service desk qui exploitent GLPI ont rarement un processus formel pour suivre les vulnérabilités liées à la version en production. Le NVD (NIST) et la GitHub Advisory Database publient des CVE en continu, mais suivre cela à la main, version par version, est irréaliste pour ceux qui ouvrent et ferment aussi des tickets toute la journée.

Pire : la version du logiciel n'est que la moitié du risque. L'environnement PHP et la configuration du serveur introduisent des failles silencieuses - display_errors activé en production qui fuit chemins et stack traces, un cookie de session sans HttpOnly, l'absence de Content-Security-Policy ou de Strict-Transport-Security. Chacun de ces détails est une surface d'attaque qui n'apparaît en général qu'après l'incident, quand il est déjà trop tard.

Comment fonctionne CVE Scan

Au lancement du scan, le module détecte la version via la constante GLPI_VERSION et la croise avec une base dynamique de CVE construite à partir de trois sources :

  • NVD / NIST - la source de référence pour le score CVSS et les métadonnées officielles de chaque faille.
  • GitHub Advisory Database - les advisories publiés par le projet GLPI lui-même, avec les versions touchées et la version qui corrige chaque faille par branche (comme 10.0 et 11.0), ainsi que le lien de l'advisory.
  • Base statique de secours - liste intégrée au module avec les failles critiques et élevées, utilisée avant la première mise à jour de la base et dans les environnements qui n'atteignent ni GitHub ni le NVD.

La fusion se fait par CVE ID : le NVD prime pour le CVSS, GitHub apporte les plages de versions et les liens d'advisory. La base locale est mise à jour chaque jour par une tâche automatique et, à la demande, par le bouton Mettre à jour la base ; le scan lui-même n'interroge ni GitHub ni le NVD, et si les deux sources échouent la base précédente reste en vigueur. En parallèle du croisement des CVE, le module exécute 19 vérifications de sécurité de l'environnement, réparties en cinq catégories : configuration PHP (8 checks), vérifications propres à GLPI (4, dont les mots de passe par défaut des comptes d'installation), en-têtes HTTP (4), droits des fichiers (2) et version de PHP (1), qui signale un PHP sorti du support de sécurité. Le résultat devient un Security Score de 0 à 100, avec une plage de couleur - rouge pour critique, jaune pour modéré et vert pour sain - et chaque élément affiche son statut, la version qui corrige la faille et l'instruction de correction.

Ce qu'il voit et que GLPI natif ne montre pas

Point auditéGLPI natifModule CVE Scan
CVE de la version installéeAucun avertissementCroise GLPI_VERSION avec NVD et GitHub Advisory
Répertoire install/ oubliéAvertissement sur l'écran de connexionSignalé dans le score quand l'installateur répond sur le web, avec instruction de suppression
display_errors en productionNon vérifiéCheck dédié
En-têtes CSP / HSTS / X-Frame-Options / X-Content-Type-OptionsNon vérifiéQuatre checks d'en-tête HTTP
Permission de config_db.phpAucun avertissementCheck dédié
Évolution du risque dans le tempsInexistantSecurity Score enregistré à chaque scan

Ce que nous avons appris sur le terrain

En maintenance, le check qui échoue le plus souvent chez un client est session.cookie_secure - et la cause est presque toujours hors de GLPI. GLPI est derrière un reverse proxy qui termine le TLS, donc PHP voit la connexion comme http et ne marque pas le cookie comme sécurisé. La correction n'est pas dans GLPI : il faut régler l'en-tête X-Forwarded-Proto sur le proxy et forcer HSTS en périphérie. Le deuxième plus fréquent est le répertoire install/ oublié après le setup. GLPI le signale bien sur l'écran de connexion, mais sur un parc de dizaines d'instances cet avertissement passe inaperçu - le score consolidé est ce qui oblige l'équipe à regarder. C'est pourquoi nous traitons CVE Scan comme un thermomètre, pas comme un verdict : il pointe l'endroit, mais la décision de corriger à la bonne source reste à celui qui exploite l'environnement.

Vérifier les mêmes points à la main

Avant d'installer quoi que ce soit, vous pouvez reproduire une partie du diagnostic directement sur le serveur. Voici précisément certains des points que le module audite dans PHP et sur le système de fichiers :

# Drapeaux PHP audites par CVE Scan (a executer sur le serveur GLPI)
php -i | grep -Ei 'display_errors|expose_php|allow_url_include|cookie_httponly|cookie_secure'

# Permission du fichier d'identifiants de la base : doit etre 400 ou 440, jamais 644
stat -c '%a %n' /var/www/glpi/config/config_db.php

# Repertoire d'installation qui aurait du etre supprime apres le setup
test -f /var/www/glpi/install/install.php && echo 'ALERTE : install/ encore present - a supprimer'

# Version de PHP : alerter si elle est en fin de vie (EOL)
php -r 'echo PHP_VERSION, PHP_EOL;'

Le module automatise cela, ajoute le croisement avec les bases de CVE et conserve l'historique - mais lancer les commandes ci-dessus montre déjà pourquoi l'audit manuel ne passe pas l'échelle au-delà de deux ou trois instances.

Comment l'activer

  1. Installez le plugin NexTool sur votre GLPI.
  2. Allez dans Configuration > NexTool > Modules.
  3. Repérez la carte CVE Scan Vulnérabilités, cliquez sur Installer puis Activer.
  4. Ouvrez le module et, dans le Tableau de bord, cliquez sur Mettre à jour la base puis sur Exécuter l'analyse.
  5. Optionnel : saisissez un token GitHub et une clé API NVD dans l'onglet de configuration pour relever les limites de requêtes des bases externes.

Pour qui (et quand non)

Pour les administrateurs GLPI qui ont besoin d'un audit de sécurité rapide et récurrent, les équipes qui subissent des audits internes ou externes et ont besoin de preuves de l'état de l'environnement, et les responsables qui veulent suivre la posture de sécurité dans le temps via l'historique des scans. Ce n'est pas une solution miracle : il ne remplace pas un pentest, ne corrige rien tout seul et ne doit pas servir d'excuse pour reporter la mise à jour de GLPI. Si votre environnement dispose déjà d'un scanner d'entreprise (Nessus, Qualys) pointant sur le même hôte, CVE Scan est un complément léger et spécifique à GLPI, pas un concurrent.

Compatibilité

  • GLPI : 10.x et 11.x
  • Plan : FREE
  • Plugin : NexTool 6.11.0 ou supérieur

Étape suivante

CVE Scan Vulnérabilités fait partie de NexTool, le plugin modulaire pour GLPI. Découvrez les autres modules ou parlez à l'équipe pour une évaluation de sécurité complète de votre environnement.


Révisé par l'équipe NexTool Solutions.

Questions fréquentes

Le module CVE Scan de NexTool détecte la version via la constante GLPI_VERSION et la croise avec le NVD (NIST) et la GitHub Advisory Database, en plus d'exécuter 19 checks de sécurité de l'environnement et de produire un Security Score de 0 à 100.

Les deux. Au-delà des CVE de la version installée, il audite 19 points de l'environnement : 8 drapeaux de configuration PHP, 4 vérifications GLPI (comme les mots de passe par défaut des comptes d'installation et un installateur accessible depuis le web), 4 en-têtes HTTP (CSP, HSTS, X-Frame-Options et X-Content-Type-Options), 2 vérifications des droits des fichiers (comme celui de config_db.php) et celle d'un PHP sorti du support de sécurité.

Oui, avec une couverture réduite. Si le NVD et GitHub Advisory deviennent indisponibles, le module continue d'utiliser la dernière base téléchargée et vous avertit dans le Tableau de bord ; si aucune base n'a encore été téléchargée, il utilise une liste intégrée des failles critiques et élevées, pour ne pas laisser le scan sans résultat.

Après chaque mise à jour de GLPI et régulièrement (mensuel est un bon rythme). Le cache de CVE est actualisé chaque jour par cron, donc l'historique des scans montre l'évolution du Security Score dans le temps.

Non. C'est un module FREE de NexTool, compatible avec GLPI 10 et 11.

Besoin d'aide ?