Cacti - CVE-2026-39893

Date de publication :

Il s'agit d'une vulnérabilité d'injection SQL dans le fichier graph_view.php.

Cacti est un outil open source de supervision réseau et de gestion des performances. Il collecte des données via SNMP et d'autres protocoles, génère des graphiques RRD et fournit une interface web de visualisation pour les administrateurs d'infrastructure.

La variable de requête rfilter est concaténée directement dans une clause SQL RLIKE sans aucune désinfection ni paramétrage. L'endpoint de visualisation graphique ne requiert pas d'authentification lorsque l'accès invité est activé, fonctionnalité présente par défaut dans de nombreuses configurations. Un attaquant distant et non authentifié peut ainsi soumettre une valeur rfilter malformée pour manipuler la requête SQL générée.

Elle permet une exécution de code arbitraire à distance, une exfiltration de données et une compromission totale de la disponibilité du système de supervision.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Oui

Risques

Exécution de code arbitraire (à distance)

Exploitation

La vulnérabilité exploitée est du type
CWE-89 : Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Faible
•   Privilèges nécessaires pour réaliser l'attaque : Aucun
•   Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
•   L'exploitation de la faille permet d'obtenir des droits privilégiés : Oui

Preuve de concept
Actuellement, aucune preuve de concept n'est disponible en sources ouvertes.

Systèmes ou composants affectés

Cacti versions 1.2.30 et antérieures

Contournement provisoire

Désactiver l'accès invité (guest access) dans la configuration afin de rendre l'endpoint inaccessible sans authentification

Solutions ou recommandations

Cacti version 1.2.31 et supérieures (branche 1.2.x, commit 891344a5c10b8687a3d2a5d26e6de20f13069e2a)