Уязвимости в Git, проявляющиеся при клонировании субмодулей и использовании git shell

Опубликованы корректирующие выпуски распределённой системы управления исходными текстами Git 2.38.1, 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5,
2.35.5, 2.36.3 и 2.37.4, в которых устранены две уязвимости, проявляющиеся при применении команды «git clone» в режиме «—recurse-submodules» с непроверенными репозиториями и при использовании интерактивного режима работы «git shell». Проследить за выпуском обновлений пакетов в дистрибутивах можно на страницах Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.

  • CVE-2022-39253 — возможность манипуляции с файлами через размещение символических ссылок в каталоге $GIT_DIR/objects, клонируемого репозитория. Уязвимость позволяет атакующему, контролирующему содержимое клонируемого репозитория, например, организовать подстановку своего содержимого в Docker-контейнер. Проблема проявляется только при локальном клонировании (в режиме «—local«) или при клонировании вредоносного репозитория, упакованного в форме субмодуля в другом репозитории (например, при рекурсивном включении субмодулей командой «git clone —recurse-submodules»).

    Уязвимость вызвана тем, что в режиме клонирования «—local», git выполняет разыменование символических ссылок в каталоге $GIT_DIR/objects на стадии до создания жёстких ссылок или копий данных файлов в целевом репозитории, что может быть использовано для манипуляций с файлами в основном каталоге репозитория ($GIT_DIR). Для блокирования проявления уязвимости в новых выпусках git запрещено клонирование репозиториев в режиме «—local», содержащих символические ссылки в каталоге $GIT_DIR/objects. Кроме того, значение по умолчанию параметра protocol.file.allow изменено на «user», что относит операции клонирования с использованием протокола file:// в разряд небезопасных.

  • CVE-2022-39260 — целочисленное переполнение в функции split_cmdline(), используемой в команде «git shell». Проблема может быть использована для атаки на пользователей, у которых «git shell» используется в качестве оболочки при входе и включён интерактивный режим работы (создан файл $HOME/git-shell-commands). Эксплуатация уязвимости может привести к выполнению произвольного кода в системе при передаче специально оформленной команды, размером больше 2 ГБ.

Источник: http://www.opennet.ru/opennews/art.shtml?num=57940