Уязвимость проявляется только в файловых системах, не различающих регистр символов и поддерживающих символические ссылки, например, используемых по умолчанию в Windows и macOS. Эксплуатация осуществляется через создание в субмодуле каталога и символической ссылки, отличающихся только регистром символов, что позволяет добиться записи файлов в каталог .git/, вместо рабочего каталога субмодуля. Получив возможность записи в .git/ атакующий может переопределить hook-вызовы через .git/hooks и добиться выполнения произвольного кода во время выполнения операции «git clone».
Другие уязвимости:
- CVE-2024-32004 — атакующий в многопользовательской системе может подготовить специально оформленный локальный репозиторий и добиться выполнения кода при его клонировании. В частности, атакующий может создать локальный репозиторий, выглядящий как частичный клон, в котором отсутствует определённый объект. Клонирование этого репозитория приведёт к выполнению кода с правами пользователя, выполняющего операцию клонирования.
- CVE-2024-32465 — клонирование из zip-архивов, содержащих полный git-репозиторий, включающий hook-и в каталоге .git/, приведёт к выполнению этих hook-ов.
- CVE-2024-32020 — создание локальных клонов репозитория на том же диске в многопользовательской системе позволяет другим пользователям изменить файлы, для которых задействованы жёсткие ссылки.
- CVE-2024-32021 — клонирование локального репозитория с символическими ссылками, может использоваться для создания жёстких ссылок на произвольные файлы в каталоге objects/.
Помимо устранения уязвимостей в новых версиях также предложено несколько изменений, нацеленных на повышение защиты от уязвимостей, приводящих к удалённому выполнению кода и манипулирующих символическими ссылками при выполнения клонирования. Например, git теперь выдаёт предупреждение при наличии символических ссылок в каталоге .git/. Пути к субмодулям отныне могут содержать только реальные каталоги. При пересечении символических ссылок и каталогов, обрабатываются каталоги. При выполнении «git clone» добавлена защита от выполнения hook-ов во время клонирования и усилены проверки параметра core.hooksPath.
Источник: http://www.opennet.ru/opennews/art.shtml?num=61180