
Сканирует экземпляры GitHub Enterprise Server на наличие CVE-2026-3854 и CVE-2026-4821, обеспечивая обнаружение на основе версий с пакетным сканированием и несколькими форматами вывода.
Определяет, затронуты ли экземпляры GitHub Enterprise Server (GHES) уязвимостями CVE-2026-3854 и CVE-2026-4821.
Git Push RCE — компонент babeld не очищает точки с запятой в опциях git push, что позволяет удалённое выполнение кода.
Затронутые версии:
| Major | Затронутый диапазон | Минимальная безопасная версия |
|---|
| 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+ | Не затронуты | — |
Инъекция через прокси в Management Console — поля конфигурации прокси не очищают метасимволы оболочки.
Затронутые версии:
Исправлено в: 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
| Параметр | Описание | По умолчанию |
|---|---|---|
--timeout N | Таймаут HTTP в секундах | 5 |
--retries N | Количество повторных попыток | 2 |
--verbose, -v | Включить подробный вывод | false |
| Параметр | Описание |
|---|---|
url | URL экземпляра GHES |
--cve-only CVE_ID | Сканировать только указанную CVE |
--format, -f | Формат вывода (console/json/csv/html) |
--output, -o | Путь к файлу вывода |
--exit-code | Включить коды выхода |
| Параметр | Описание |
|---|---|
file | Путь к CSV-файлу |
--url-column N | Индекс столбца URL |
--ip-column N | Индекс столбца IP |
--port-column N | Индекс столбца порта |
--format, -f | Формат вывода |
--output, -o | Путь к файлу вывода |
--workers N | Максимальное количество параллельных потоков |
--exit-code | Включить коды выхода |
| Код | Значение |
|---|---|
| 0 | Все экземпляры безопасны |
| 1 | Как минимум один экземпляр уязвим |
| 2 | Как минимум один экземпляр не удалось просканировать |
| Версия GHES | CVE-2026-3854 | CVE-2026-4821 |
|---|---|---|
| 3.14.0 - 3.14.24 | УЯЗВИМА | УЯЗВИМА |
| 3.14.25+ | БЕЗОПАСНА | УЯЗВИМА |
| 3.15.0 - 3.15.20 | УЯЗВИМА | УЯЗВИМА |
| 3.15.21+ | БЕЗОПАСНА | БЕЗОПАСНА |
| 3.16.0 - 3.16.15 | УЯЗВИМА | УЯЗВИМА |
| 3.16.16+ | БЕЗОПАСНА | УЯЗВИМА |
| 3.17.0 - 3.17.12 | УЯЗВИМА | УЯЗВИМА |
| 3.17.13+ | БЕЗОПАСНА | УЯЗВИМА |
| 3.18.0 - 3.18.6 | УЯЗВИМА | УЯЗВИМА |
| 3.18.7+ | БЕЗОПАСНА | УЯЗВИМА |
| 3.19.0 - 3.19.3 | УЯЗВИМА | УЯЗВИМА |
| 3.19.4+ | БЕЗОПАСНА | УЯЗВИМА |
| 3.20.0 | БЕЗОПАСНА | УЯЗВИМА |
| 3.20.1+ | БЕЗОПАСНА | БЕЗОПАСНА |
# Сканирование одного экземпляра
./examples/single_instance.sh https://ghes.company.com
# Пакетное сканирование
./examples/batch_scan.sh instances.csv report.html
# Интеграция с CI
# См. examples/ci_integration.sh
Лицензия MIT