В GitHub Enterprise Server была обнаружена уязвимость обхода пути, которая позволяла неаутентифицированному злоумышленнику удалить произвольные файлы и каталоги на экземпляре, включая весь каталог пользовательского хранилища, содержащий объекты Git LFS, ресурсы выпуска, вложения и аватары. Заголовок запроса X-GitHub-Request-Id использовался без очистки в качестве сегмента пути файловой системы для каталога буфера загрузки, поэтому значение обхода указывало буферу на произвольный путь, а процедура отложенной очистки рекурсивно удаляла пройденную цель. Для эксплуатации требовалась только доступность экземпляра по сети без аутентификации, и это работало даже при включенном приватном режиме.
Эта уязвимость затронула все версии GitHub Enterprise Server до 3.22 и была исправлена в версиях 3.21.4, 3.20.6, 3.19.10, 3.18.13 и 3.17.19. Об этой уязвимости сообщили через программу GitHub Bug Bounty.
Показать оригинальное описание (EN)
A path traversal vulnerability was identified in GitHub Enterprise Server that allowed an unauthenticated attacker to delete arbitrary files and directories on the instance, including the entire user storage directory containing Git LFS objects, release assets, attachments, and avatars. The X-GitHub-Request-Id request header was used without sanitization as a filesystem path segment for the upload buffer directory, so a traversal value pointed the buffer at an arbitrary path and the deferred cleanup routine recursively removed the traversed target. Exploitation required only network reachability to the instance and no authentication, and it worked even when private mode was enabled. This vulnerability affected all versions of GitHub Enterprise Server prior to 3.22 and was fixed in versions 3.21.4, 3.20.6, 3.19.10, 3.18.13 and 3.17.19. This vulnerability was reported via the GitHub Bug Bounty program.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 5
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Github Enterprise_Server
cpe:2.3:a:github:enterprise_server:*:*:*:*:*:*:*:*
|
— |
3.17.19
|
|
Github Enterprise_Server
cpe:2.3:a:github:enterprise_server:*:*:*:*:*:*:*:*
|
3.18.0
|
3.18.13
|
|
Github Enterprise_Server
cpe:2.3:a:github:enterprise_server:*:*:*:*:*:*:*:*
|
3.19.0
|
3.19.10
|
|
Github Enterprise_Server
cpe:2.3:a:github:enterprise_server:*:*:*:*:*:*:*:*
|
3.20.0
|
3.20.6
|
|
Github Enterprise_Server
cpe:2.3:a:github:enterprise_server:*:*:*:*:*:*:*:*
|
3.21.0
|
3.21.4
|