
Prova de conceito e análise técnica para uma vulnerabilidade de XSS refletido (CVE-2025-66850) no módulo de roteamento do LibreNMS, afetando as versões 22.9.0 até 24.9.1.
Dentro da aplicação ‘LibreNMS’, descobrimos uma vulnerabilidade de Cross-Site Scripting refletido; esta vulnerabilidade existe no parâmetro protocol do módulo de roteamento, permitindo a um atacante executar JavaScript malicioso no navegador de uma vítima. Esta vulnerabilidade afeta todas as versões de 22.9.0 (setembro de 2022) até 24.9.1 (setembro de 2024). Esta vulnerabilidade foi corrigida silenciosamente na versão 24.10.0 (novembro de 2024) sem subsequente CVE ou divulgação pública. Esta correção não documentada significa que muitas organizações podem não estar cientes da sua exposição e ainda não aplicaram as atualizações necessárias. Pode ver a configuração atual utilizada para testar esta vulnerabilidade na figura abaixo:

Uma vulnerabilidade de Cross-Site Scripting refletido permite que atacantes remotos injetem código JavaScript arbitrário nos navegadores de utilizadores autenticados do LibreNMS através de URLs especialmente concebidos – potencialmente permitindo-lhes capturar cookies de sessão, criar uma backdoor de administrador ou redirecionar utilizadores para domínios controlados pelo atacante. A prova do XSS pode ser vista na imagem abaixo:

A falha de segurança resulta de uma validação de entrada insuficiente no parâmetro ‘protocol’ do endpoint ‘/routing’. A aplicação aplica uma sanitização básica através do atributo ‘basename()’, prevenindo directory traversal, mas não efetua a codificação de entidades HTML antes de refletir a entrada na página – permitindo que atacantes contornem os controlos de segurança básicos e injetem código malicioso.
Produto: LibreNMS
Versões Afetadas: <= 24.9.1
Versão Corrigida: 24.10.0 (5 de novembro de 2024)
Tipo de Vulnerabilidade: CWE-79 (Neutralização Incorreta de Entrada Durante a Geração de Página Web)
Módulo: Routing
Endpoint: /routing
Parâmetro: protocol
Ficheiro: includes/html/pages/routing.inc.php
Configurar o LibreNMS 24.9.1
Navegar para o endpoint ‘/routing/protocol=’
Injetar o payload do PoC na secção abaixo
http://[librenms-instance]/routing/protocol=<script>alert(‘SecQuest XSS’)<!-->
Descoberto por: Joel Olivier, Leo Cook
Organização: SecQuest
Data da Descoberta: 18 de novembro de 2025