A sua instância do GLPI está exposta a vulnerabilidades já catalogadas e você não sabe? Na maioria dos parques que assumimos para sustentação, ninguém consegue responder de imediato qual CVE afeta a versão em produção nem se o PHP está com as flags de segurança corretas. O módulo CVE Scan Vulnerabilidades do NexTool cruza a versão instalada com bases públicas de CVE e audita 17 pontos críticos do ambiente em segundos, gerando um Security Score visual.
O problema
Equipes de service desk que operam o GLPI raramente têm um processo formal para rastrear vulnerabilidades associadas à versão em produção. O NVD (NIST) e o GitHub Advisory Database publicam CVEs continuamente, mas acompanhar isso manualmente, versão a versão, é inviável para quem também abre e fecha chamado o dia inteiro.
Pior: a versão do software é só metade do risco. O ambiente PHP e a configuração do servidor introduzem falhas silenciosas - display_errors ligado em produção vazando caminho e stack trace, cookie de sessão sem HttpOnly, ausência de Content-Security-Policy ou de Strict-Transport-Security. Cada um desses detalhes é uma superfície de ataque que só costuma aparecer depois do incidente, quando já é tarde.
Como o CVE Scan funciona
Ao rodar o scan, o módulo detecta a versão pela constante GLPI_VERSION e cruza com uma base dinâmica de CVEs montada a partir de três fontes:
- NVD / NIST - fonte autoritativa para a pontuação CVSS e os metadados oficiais de cada falha.
- GitHub Advisory Database - links de advisory e o detalhamento das falhas reportadas pela comunidade.
- Base estática de fallback - garante cobertura mesmo quando as APIs externas estão indisponíveis ou com o limite de requisição estourado.
O merge é feito por CVE ID: o NVD prevalece para o CVSS, o GitHub entra com os links de advisory. Um cache local é atualizado diariamente por cron e sob demanda a cada execução manual. Em paralelo ao cruzamento de CVEs, o módulo roda 17 verificações de segurança do ambiente, agrupadas em quatro categorias: configuração do PHP (8 checks), verificações específicas do GLPI (3), headers HTTP (3) e outras (3), como PHP em fim de vida. O resultado vira um Security Score de 0 a 100, com faixa de cor - vermelho para crítico, amarelo para moderado e verde para saudável - e cada item traz o status, a versão que corrige a falha e a instrução de correção.
O que ele vê que o GLPI nativo não mostra
| Ponto auditado | GLPI nativo | Módulo CVE Scan |
|---|---|---|
| CVEs da versão instalada | Não avisa | Cruza a GLPI_VERSION com NVD e GitHub Advisory |
| Diretório install/ esquecido | Aviso na tela de login | Consolidado no score, com instrução de remoção |
| display_errors em produção | Não verifica | Check dedicado |
| Headers CSP / HSTS / X-Frame-Options | Não verifica | Três checks de header HTTP |
| Permissão do config_db.php | Não avisa | Check dedicado |
| Evolução do risco ao longo do tempo | Inexistente | Security Score registrado a cada scan |
O que aprendemos rodando isso em campo
Na sustentação, o check que mais reprova em ambiente de cliente é o session.cookie_secure - e quase sempre é um falso-alarme mal interpretado. O GLPI está atrás de um proxy reverso que termina o TLS, então o PHP enxerga a conexão como http e não marca o cookie como seguro. A correção não é no GLPI: é acertar o cabeçalho X-Forwarded-Proto no proxy e forçar HSTS na borda. O segundo campeão é o diretório install/ esquecido depois do setup. O GLPI até avisa disso na tela de login, mas em parque com dezenas de instâncias esse aviso passa batido - o score consolidado é o que obriga o time a olhar. Por isso tratamos o CVE Scan como termômetro, não como veredito: ele aponta o ponto, mas a decisão de corrigir na origem certa continua sendo de quem sustenta.
Conferindo os mesmos pontos na mão
Antes de instalar qualquer coisa, você consegue reproduzir parte do diagnóstico direto no servidor. Estes são exatamente alguns dos pontos que o módulo audita no PHP e no sistema de arquivos:
# Flags de PHP que o CVE Scan audita (rodar no servidor do GLPI)
php -i | grep -Ei 'display_errors|expose_php|allow_url_include|cookie_httponly|cookie_secure'
# Permissao do arquivo de credenciais do banco: deve ser 400 ou 440, nunca 644
stat -c '%a %n' /var/www/glpi/config/config_db.php
# Diretorio de instalacao que deveria ter sido removido apos o setup
test -f /var/www/glpi/install/install.php && echo 'ALERTA: install/ ainda presente - remover'
# Versao do PHP: alertar se estiver em fim de vida (EOL)
php -r 'echo PHP_VERSION, PHP_EOL;'
O módulo automatiza isso, adiciona o cruzamento com as bases de CVE e guarda o histórico - mas rodar os comandos acima já mostra por que a auditoria manual não escala em mais de duas ou três instâncias.
Como ativar
- Instale o plugin NexTool no seu GLPI.
- Acesse Configuração > NexTool > Módulos.
- Localize o card CVE Scan Vulnerabilidades, clique em Instalar e depois em Ativar.
- Abra o módulo e clique em Executar Scan na aba de funcionalidades.
- Opcional: informe um token do GitHub e uma API Key do NVD na aba de configurações para elevar os limites de requisição das bases externas.
Para quem é indicado (e quando não)
É indicado para administradores de GLPI que precisam de uma auditoria de segurança rápida e recorrente, times que passam por auditoria interna ou externa e precisam de evidência do estado do ambiente, e gestores que querem acompanhar a evolução do posicionamento de segurança pelo histórico de scans. Não é uma bala de prata: ele não substitui um pentest, não corrige nada sozinho e não deve virar desculpa para adiar a atualização do GLPI. Se o seu ambiente já tem um scanner corporativo (Nessus, Qualys) apontando para o mesmo host, o CVE Scan é complemento leve e específico do GLPI, não concorrente.
Compatibilidade
- GLPI: 10.x e 11.x
- Plano: FREE
- Plugin: NexTool 3.x ou superior
Próximo passo
O CVE Scan Vulnerabilidades faz parte do NexTool, plugin modular para GLPI. Conheça os demais módulos ou fale com a equipe para uma avaliação de segurança completa do seu ambiente.
Este conteúdo foi produzido com auxílio de inteligência artificial e revisado pela equipe NexTool Solutions.