Уязвимости в Git, приводящая к утечке и перезаписи данных

Опубликованы корректирующие выпуски распределённой системы управления исходными текстами Git 2.38.4, 2.37.6, 2.36.5, 2.35.7, 2.34.7, 2.33.7, 2.32.6, 2.31.7 и 2.30.8, в которых устранены две уязвимости, затрагивающие оптимизации при локальном клонировании и команду «git apply». Проследить за выпуском обновлений пакетов в дистрибутивах можно на страницах Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Если установить обновление не представляется возможным, в качестве обходных мер рекомендуется избегать выполнения операции «git clone» с опцией «—recurse-submodules» с репозиториями, не заслуживающими доверия, а также не использовать команды «git apply» и «git am» с непроверенным кодом.

  • Уязвимость CVE-2023-22490 позволяет атакующему, контролирующему содержимое клонируемого репозитория, получить доступ к конфиденциальным данным на системе пользователя. Появлению уязвимости способствуют две недоработки:

    Первая недоработка, позволяет при работе со специально оформленным репозиторием добиться применения локальных оптимизаций клонирования даже при использовании транспорта, взаимодействующего со внешними системами.

    Вторая недоработка, допускает размещение символической ссылки вместо каталога $GIT_DIR/objects по аналогии с уязвимостью CVE-2022-39253, в исправлении которой блокировалось размещение символических ссылок в каталоге $GIT_DIR/objects, но не проверялся факт того, что сам каталог $GIT_DIR/objects может быть символической ссылкой.

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

  • Уязвимость CVE-2023-23946 позволяет перезаписать содержимое файлов вне рабочего каталога через передачу специально оформленного ввода в команду «git apply». Например, атака может быть совершена при обработке в «git apply» подготовленных злоумышленником патчей. Для блокирования создания патчами файлов вне рабочей копии, «git apply» блокирует обработку патчей, пытающихся записать файл с использованием символических ссылок. Но эту защиту оказалось можно обойти, создав символическую ссылку в первую очередь.

Источник: opennet.ru

Добавить комментарий