+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новости

Пользователям Windows рекомендуется срочно обновить версию Git

Пользователям Windows рекомендуется срочно обновить версию Git

Опубликованы корректирующие выпуски распределённой системы управления исходными текстами Git 2.24.1, 2.23.1, 2.22.2, 2.21.1, 2.20.2, 2.19.3, 2.18.2, 2.17.3, 2.16.6, 2.15.4 и 2.14.62.24.1, в которых устранены уязвимости, позволяющие атакующему переписать произвольные пути в файловой системе, организовать удалённый запуск кода или перезаписать файлы в каталоге ".git/". Большинство проблем выявлены сотрудниками Microsoft Security Response Center, пять из восьми уязвимостей специфичны для платформы Windows.

  • CVE-2019-1348 - потоковая команда "feature export-marks=path"позволяет записать метки в произвольные каталоги, что может использоваться для перезаписи произвольных путей в ФС при выполнении операции "git fast-import" с непроверенными входными данными.
  • CVE-2019-1350 - некорректное экранирование аргументов командной строки могло привести к удалённому выполнению кода атакующего при рекурсивном клонировании с использованием URL ssh://. В частности, некорректно обрабатывалось экранирование аргументов, оканчивающихся на обратный слеш (например, "test \"). В этом случае при обрамлении аргумента двойными кавычками, последняя кавычка оказывалась экранированной, что позволяло организовать подстановку своих опций в командной строке.
  • CVE-2019-1349 - при рекурсивном клонировании субмодулей ("clone --recurse-submodules") в окружении Windows при определённых условиях можно было инициировать использование одного git-каталога дважды (.git, git~1, git~2 и git~N в NTFS распознаётся как один каталог, но эта ситуация проверялась только для git~1), что могло применяться для организации записи в каталог ".git". Для организации выполнения своего кода атакующий, например, может подставить свой скрипт через обработчик post-checkout в файле .git/config.
  • CVE-2019-1351 - обработчик буквенных имён дисков в путях Windows при трансляции путей типа "C:\" был рассчитан только на замену однобуквенных латинских идентификаторов, но не учитывал возможность создания виртуальных дисков, назначаемых через "subst буква:путь". Такие пути обрабатывались не как абсолютные, а как относительные пути, что позволяло при клонировании вредоносного репозитория организовать запись в произвольный каталог за пределами рабочего дерева каталогов (например, при использовании цифр или unicode-символов в названии диска - "1:\what\the\hex.txt" или "ä:\tschibät.sch").
  • CVE-2019-1352 - при работе на платформе Windows применение альтернативных потоков данных в NTFS, создаваемых через добавление признака ":stream-name:stream-type" к имени файла, позволяло перезаписать файлы в каталоге ".git/" при клонировании вредоносного репозитория. Например, имя ".git::$INDEX_ALLOCATION" в NTFS обрабатывалось как корректная ссылка на каталог ".git".
  • CVE-2019-1353 - при использовании Git в окружении WSL (Windows Subsystem for Linux) при обращении к рабочему каталогу не применялась защита от манипуляции именами в NTFS (были возможны атаки через трансляцию имён FAT, например, к ".git" можно было обратиться через каталог "git~1").
  • CVE-2019-1354 - возможность записи в каталог ".git/" на платформе Windows при клонировании вредоносных репозиториев, содержащих файлы с обратным слешем в имени (например, "a\b"), который допустим в Unix/Linux, но воспринимается как часть пути в Windows.
  • CVE-2019-1387 - недостаточная проверка имён субмодулей могла использоваться для организации целевых атак, которые при рекурсивном клонировании потенциально могли привести к выполнению кода атакующего. Git не запрещал создавать каталог субмодуля в каталоге другого субмодуля, что в большинстве случаях лишь может привести к замешательству, но потенциально не исключает перезаписи содержимого другого модуля в процессе рекурсивного клонирования (например, каталоги субмодулей "hippo" и "hippo/hooks" размещаются как ".git/modules/hippo/" и ".git/modules/hippo/hooks/", а каталог hooks в hippo может отдельно использоваться для размещения запускаемых обработчиков.

Пользователям Windows рекомендуется срочно обновить версию Git, а до обновления воздержаться от клонирования непроверенных репозиториев. Если возможности срочно обновить версию Git пока нет, то для снижения риска атаки рекомендуется не запускать "git clone --recurse-submodules" и "git submodule update" с непроверенными репозиториями, не использовать "git fast-import" с непроверенными входными потоками и не клонировать репозитории в разделы на базе NTFS.

Для дополнительной защиты в новых выпусках также запрещено использование в .gitmodules конструкций в форме "submodule.{name}.update=!command". Для дистрибутивов проследить за выпуском обновлений пакетов можно на страницах Debian,Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, ALT, FreeBSD.

Другие новости