
Scanne les instances GitHub Enterprise Server à la recherche des CVE-2026-3854 et CVE-2026-4821, offrant une détection basée sur les versions avec analyse par lots et plusieurs formats de sortie.
Détecte si les instances GitHub Enterprise Server (GHES) sont affectées par les CVE-2026-3854 et CVE-2026-4821.
RCE via Git Push — Le composant babeld ne neutralise pas les points-virgules dans les options de git push, permettant une exécution de code à distance.
Versions affectées :
| Majeure | Plage affectée | Version minimale sûre |
|---|
| 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+ | Non affecté | — |
Injection via le proxy de la console de gestion — Les champs de configuration du proxy ne neutralisent pas les métacaractères du shell.
Versions affectées :
Corrigé dans : 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
| Option | Description | Défaut |
|---|---|---|
--timeout N | Délai d'expiration HTTP en secondes | 5 |
--retries N | Nombre de nouvelles tentatives | 2 |
--verbose, -v | Activer la sortie détaillée | false |
| Option | Description |
|---|---|
url | URL de l'instance GHES |
--cve-only CVE_ID | Analyser uniquement la CVE spécifiée |
--format, -f | Format de sortie (console/json/csv/html) |
--output, -o | Chemin du fichier de sortie |
--exit-code | Activer les codes de sortie |
| Option | Description |
|---|---|
file | Chemin du fichier CSV |
--url-column N | Index de la colonne URL |
--ip-column N | Index de la colonne IP |
--port-column N | Index de la colonne port |
--format, -f | Format de sortie |
--output, -o | Chemin du fichier de sortie |
--workers N | Nombre maximal de threads parallèles |
--exit-code | Activer les codes de sortie |
| Code | Signification |
|---|---|
| 0 | Toutes les instances sont sûres |
| 1 | Au moins une instance est vulnérable |
| 2 | Au moins une instance n'a pas pu être analysée |
| Version GHES | CVE-2026-3854 | CVE-2026-4821 |
|---|---|---|
| 3.14.0 - 3.14.24 | VULNÉRABLE | VULNÉRABLE |
| 3.14.25+ | SÛRE | VULNÉRABLE |
| 3.15.0 - 3.15.20 | VULNÉRABLE | VULNÉRABLE |
| 3.15.21+ | SÛRE | SÛRE |
| 3.16.0 - 3.16.15 | VULNÉRABLE | VULNÉRABLE |
| 3.16.16+ | SÛRE | VULNÉRABLE |
| 3.17.0 - 3.17.12 | VULNÉRABLE | VULNÉRABLE |
| 3.17.13+ | SÛRE | VULNÉRABLE |
| 3.18.0 - 3.18.6 | VULNÉRABLE | VULNÉRABLE |
| 3.18.7+ | SÛRE | VULNÉRABLE |
| 3.19.0 - 3.19.3 | VULNÉRABLE | VULNÉRABLE |
| 3.19.4+ | SÛRE | VULNÉRABLE |
| 3.20.0 | SÛRE | VULNÉRABLE |
| 3.20.1+ | SÛRE | SÛRE |
# Analyse d'une instance unique
./examples/single_instance.sh https://ghes.company.com
# Analyse par lot
./examples/batch_scan.sh instances.csv report.html
# Intégration CI
# Voir examples/ci_integration.sh
Licence MIT