The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

19.10.2022 09:50

Опубликованы корректирующие выпуски распределённой системы управления исходными текстами 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 запрещено клонирование репозиториев в режиме "--local", содержащих символические ссылки в каталоге $GIT_DIR/objects. Кроме того, значение по умолчанию параметра protocol.file.allow изменено на "user", что относит операции клонирования с использованием протокола file:// в разряд небезопасных.

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


  1. Главная ссылка к новости (https://github.blog/2022-10-18...)
  2. OpenNews: В Git устранена уязвимость, которая может привести к выполнению кода атакующего
  3. OpenNews: Обновление Git с устранением уязвимости, допускающей удалённое выполнение кода
  4. OpenNews: Уязвимость в Git для Cygwin, позволяющая организовать выполнение кода
  5. OpenNews: Две уязвимости в Git
  6. OpenNews: Выпуск системы управления исходными текстами Git 2.38
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57940-git
Ключевые слова: git
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (14) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, Аноним (2), 11:16, 19/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Ну, так надо было использовать Got из OpenBSD.
     
     
  • 2.18, Аноним (18), 13:14, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Там нет поддержки саб-модулей, Гот создаётся в первую очередь для OpenBSD, а там сабы не нужны.
     
     
  • 3.19, Аноним (19), 13:20, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > сабы не нужны

    Да

     
  • 3.21, YetAnotherOnanym (ok), 14:24, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Субмодули - это типичный пример того, когда на фичереквест надо отвечавть увесистой оплеухой.
     
     
  • 4.22, Аноним (18), 15:33, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Наверно корпорации проплатили
     

  • 1.3, Аноним (3), 11:30, 19/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > целочисленное переполнение в функции split_cmdline()

    да как вы такое делаете, демоны!

     
     
  • 2.17, Аноним (17), 13:14, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Элементарно, Ватсон - используем int вместо size_t:

    https://github.com/git/git/commit/9c32cfb49c60fa8173b9666db02efe3b45a8522f#dif

     

  • 1.9, yet another anonymous (?), 12:12, 19/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    CVE-2022-39253 выглядит как-то странно. Если не сказать маразматично: файлы (локальные) будут получены, если у локального пользователя есть права для доступа к ним. Т.е. он и так их может получить, без git'а. В чём "уязвимость"-то?
     
     
  • 2.12, Аноним (12), 12:28, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Часто предоставляется доступ к выполнению команд git, но не даётся доступ к локальной системе. Например, выполняя клонирование в системах непрерывной интеграции и хостингах а-ля GitHub уязвимость позволяет утянуть левые данные из системы и от других пользователей.
     
     
  • 3.13, yet another anonymous (?), 12:43, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А тут у вас все возможности, которые вы дали CI в деле. Собственно, git тут никакой новой дыры не открывает. А вот CI, это уже совсем другая история. Чем моднее, тем большее реш..то, причём "by design".
     

  • 1.10, yet another anonymous (?), 12:21, 19/10/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    CVE-2022-39260 тоже странная: "может привести к выполнению произвольного кода в системе при передаче специально оформленной команды, размером больше 2 ГБ." т.е. вы в _своём_ шелле запускаете специально оформленную комманду размером больше 2GB. Хрен с ними, с перьями, но на это я бы посмотрел...
     
     
  • 2.11, Аноним (12), 12:25, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Например, хостинги могут предоставлять доступ к git shell и уязвимость позволяет не только загрузить данные (а git shell только это и даёт делать, из команд там только receive-pack, upload-pack, or upload-archive), но и выполнить любой код.
     
     
  • 3.14, yet another anonymous (?), 12:50, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если по git:// на сервере возможно аналогичное, то да, это дыра. Если нет, то отдача git shell'а для receeive-pack/upload-pack выглядит как-то глупо.
     
     
  • 4.20, anonymous (??), 14:00, 19/10/2022 [^] [^^] [^^^] [ответить]  
  • +/
    git shell используется для отдачи репозиториев по ssh, а не открытым текстом по git://
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру