
Preuve de concept et analyse technique pour une vulnérabilité XSS réfléchie (CVE-2025-66850) dans le module de routage LibreNMS, affectant les versions 22.9.0 à 24.9.1.
Au sein de l’application ‘LibreNMS’, nous avons découvert une vulnérabilité de type Cross-Site Scripting réfléchi ; cette vulnérabilité réside dans le paramètre protocol du module de routage, permettant à un attaquant d’exécuter du JavaScript malveillant dans le navigateur d’une victime. Cette vulnérabilité affecte toutes les versions de 22.9.0 (septembre 2022) à 24.9.1 (septembre 2024). Cette vulnérabilité a été corrigée silencieusement dans la version 24.10.0 (novembre 2024), sans CVE ni divulgation publique ultérieure. Ce correctif non documenté signifie que de nombreuses organisations peuvent ignorer leur exposition et n’ont pas encore appliqué les mises à jour nécessaires. Vous pouvez voir la configuration actuelle utilisée pour tester cette vulnérabilité dans la figure ci-dessous :

Une vulnérabilité de type Cross-Site Scripting réfléchi permet à des attaquants distants d’injecter du code JavaScript arbitraire dans les navigateurs des utilisateurs authentifiés de LibreNMS via des URL spécialement conçues – ce qui pourrait leur permettre de récupérer les cookies de session, de créer une porte dérobée administrateur ou de rediriger les utilisateurs vers des domaines contrôlés par l’attaquant. La preuve du XSS est visible dans l’image ci-dessous :

La faille de sécurité résulte d’une validation insuffisante des entrées dans le paramètre ‘protocol’ du endpoint ‘/routing’. L’application applique un assainissement de base via l’attribut ‘basename()’, empêchant le traversement de répertoire, mais ne procède pas à l’encodage des entités HTML avant de refléter l’entrée sur la page – ce qui permet aux attaquants de contourner les contrôles de sécurité de base et d’injecter du code malveillant.
Produit: LibreNMS
Versions concernées: <= 24.9.1
Version corrigée: 24.10.0 (5 novembre 2024)
Type de vulnérabilité: CWE-79 (Neutralisation incorrecte de l’entrée lors de la génération de la page Web)
Module: Routing
Endpoint: /routing
Paramètre: protocol
Fichier: includes/html/pages/routing.inc.php
Installer LibreNMS 24.9.1
Accéder au endpoint ‘/routing/protocol=’
Injecter le payload du PoC dans la section ci-dessous
http://[librenms-instance]/routing/protocol=<script>alert(‘SecQuest XSS’)<!-->
Découverte par: Joel Olivier, Leo Cook
Organisation: SecQuest
Date de la découverte: 18 novembre 2025