Найти тему
Проект OpenNet

Уязвимости в 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 клонируемого репозитория. Уязвимость позволяет атакующему, контролирующему содержимое клонируемого репозитория, получить доступ к конфиденциальным данным. Проблема проявляется только при локальном клонировании (в режиме "--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 ГБ.