
Scaneia instâncias do GitHub Enterprise Server em busca de CVE-2026-3854 e CVE-2026-4821, fornecendo detecção baseada em versão com varredura em lote e múltiplos formatos de saída.
Detecta se instâncias do GitHub Enterprise Server (GHES) são afetadas pelas CVE-2026-3854 e CVE-2026-4821.
RCE via Git Push — O componente babeld não sanitiza ponto e vírgula nas opções de git push, permitindo execução remota de código.
Versões afetadas:
| Major | Faixa Afetada | Versão Segura Mínima |
|---|
| 3.14.x | <= 3.14.24 | 3.14.25 |
| 3.15.x | <= 3.15.19 | 3.15.20 |
| 3.16.x | <= 3.16.15 | 3.16.16 |
| 3.17.x | <= 3.17.12 | 3.17.13 |
| 3.18.x | <= 3.18.6 | 3.18.7 |
| 3.19.x | <= 3.19.3 | 3.19.4 |
| 3.20.x+ | Não afetada | — |
Injeção no Proxy do Management Console — Os campos de configuração de proxy não sanitizam metacaracteres de shell.
Versões afetadas:
Corrigida em: 3.20.1, 3.15.21
pip install ghes-cve-scanner
git clone https://github.com/isagoakira/ghes-cve-scanner.git
cd ghes-cve-scanner
pip install -e .
python scanner.py scan https://ghes.company.com
python scanner.py scan-batch instances.csv -o report.html
url,ip,port
https://ghes1.company.com,10.0.1.1,443
https://ghes2.company.com,10.0.1.2,443
| Opção | Descrição | Padrão |
|---|---|---|
--timeout N | Timeout HTTP em segundos | 5 |
--retries N | Número de tentativas | 2 |
--verbose, -v | Ativa saída detalhada | false |
| Opção | Descrição |
|---|---|
url | URL da instância GHES |
--cve-only CVE_ID | Verifica apenas a CVE especificada |
--format, -f | Formato de saída (console/json/csv/html) |
--output, -o | Caminho do arquivo de saída |
--exit-code | Ativa códigos de saída |
| Opção | Descrição |
|---|---|
file | Caminho do arquivo CSV |
--url-column N | Índice da coluna de URL |
--ip-column N | Índice da coluna de IP |
--port-column N | Índice da coluna de porta |
--format, -f | Formato de saída |
--output, -o | Caminho do arquivo de saída |
--workers N | Máximo de threads paralelas |
--exit-code | Ativa códigos de saída |
| Código | Significado |
|---|---|
| 0 | Todas as instâncias estão seguras |
| 1 | Pelo menos uma instância está vulnerável |
| 2 | Pelo menos uma instância não pôde ser verificada |
| Versão GHES | CVE-2026-3854 | CVE-2026-4821 |
|---|---|---|
| 3.14.0 - 3.14.24 | VULNERÁVEL | VULNERÁVEL |
| 3.14.25+ | SEGURA | VULNERÁVEL |
| 3.15.0 - 3.15.20 | VULNERÁVEL | VULNERÁVEL |
| 3.15.21+ | SEGURA | SEGURA |
| 3.16.0 - 3.16.15 | VULNERÁVEL | VULNERÁVEL |
| 3.16.16+ | SEGURA | VULNERÁVEL |
| 3.17.0 - 3.17.12 | VULNERÁVEL | VULNERÁVEL |
| 3.17.13+ | SEGURA | VULNERÁVEL |
| 3.18.0 - 3.18.6 | VULNERÁVEL | VULNERÁVEL |
| 3.18.7+ | SEGURA | VULNERÁVEL |
| 3.19.0 - 3.19.3 | VULNERÁVEL | VULNERÁVEL |
| 3.19.4+ | SEGURA | VULNERÁVEL |
| 3.20.0 | SEGURA | VULNERÁVEL |
| 3.20.1+ | SEGURA | SEGURA |
# Verificação de instância única
./examples/single_instance.sh https://ghes.company.com
# Verificação em lote
./examples/batch_scan.sh instances.csv report.html
# Integração com CI
# Veja examples/ci_integration.sh
Licença MIT