
# Escanea instancias de GitHub Enterprise Server en busca de CVE-2026-3854 y CVE-2026-4821, ofreciendo detección basada en versiones con escaneo por lotes y múltiples formatos de salida.
Detecta si las instancias de GitHub Enterprise Server (GHES) están afectadas por CVE-2026-3854 y CVE-2026-4821.
RCE mediante Git Push — El componente babeld no sanitiza los puntos y comas en las opciones de git push, lo que permite la ejecución remota de código.
Versiones afectadas:
| Mayor | Rango afectado | Versión mínima segura |
|---|
| 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+ | No afectada | — |
Inyección en el proxy de la consola de administración — Los campos de configuración del proxy no sanitizan los metacaracteres de shell.
Versiones afectadas:
Corregido en: 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
| Opción | Descripción | Valor por defecto |
|---|---|---|
--timeout N | Tiempo de espera HTTP en segundos | 5 |
--retries N | Número de reintentos | 2 |
--verbose, -v | Habilitar salida detallada | false |
| Opción | Descripción |
|---|---|
url | URL de la instancia GHES |
--cve-only CVE_ID | Escanear solo el CVE especificado |
--format, -f | Formato de salida (console/json/csv/html) |
--output, -o | Ruta del archivo de salida |
--exit-code | Habilitar códigos de salida |
| Opción | Descripción |
|---|---|
file | Ruta del archivo CSV |
--url-column N | Índice de la columna de URL |
--ip-column N | Índice de la columna de IP |
--port-column N | Índice de la columna de puerto |
--format, -f | Formato de salida |
--output, -o | Ruta del archivo de salida |
--workers N | Máximo de hilos en paralelo |
--exit-code | Habilitar códigos de salida |
| Código | Significado |
|---|---|
| 0 | Todas las instancias están seguras |
| 1 | Al menos una instancia es vulnerable |
| 2 | Al menos una instancia no pudo escanearse |
| Versión GHES | CVE-2026-3854 | CVE-2026-4821 |
|---|---|---|
| 3.14.0 - 3.14.24 | VULNERABLE | VULNERABLE |
| 3.14.25+ | SEGURA | VULNERABLE |
| 3.15.0 - 3.15.20 | VULNERABLE | VULNERABLE |
| 3.15.21+ | SEGURA | SEGURA |
| 3.16.0 - 3.16.15 | VULNERABLE | VULNERABLE |
| 3.16.16+ | SEGURA | VULNERABLE |
| 3.17.0 - 3.17.12 | VULNERABLE | VULNERABLE |
| 3.17.13+ | SEGURA | VULNERABLE |
| 3.18.0 - 3.18.6 | VULNERABLE | VULNERABLE |
| 3.18.7+ | SEGURA | VULNERABLE |
| 3.19.0 - 3.19.3 | VULNERABLE | VULNERABLE |
| 3.19.4+ | SEGURA | VULNERABLE |
| 3.20.0 | SEGURA | VULNERABLE |
| 3.20.1+ | SEGURA | SEGURA |
# Escaneo de una sola instancia
./examples/single_instance.sh https://ghes.company.com
# Escaneo por lotes
./examples/batch_scan.sh instances.csv report.html
# Integración con CI
# Ver examples/ci_integration.sh
Licencia MIT