The OpenNET Project / Index page

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

Уязвимость в Git для Cygwin, позволяющая организовать выполнение кода

25.04.2021 10:55

В Git выявлена критическая уязвимость (CVE-2021-29468), проявляющаяся только при сборке для окружения Cygwin (библиотека для эмуляции базового Linux API в Windows и набор типовых linux-программ для Windows). Уязвимость позволяет выполнить код злоумышленника при извлечении данных ("git checkout") из репозитория, подконтрольного атакующему. Проблема устранена в пакете git 2.31.1-2 для Cygwin. В основном проекте Git проблема пока не исправлена (маловероятно, что кто-то своими руками собирает git для Cygwin, а не использует готовый пакет).

Уязвимость вызвана обработкой окружения Cygwin как Unix-подобной системы, а не Windows, что приводит к отсутствию ограничений на использование символа '\' в пути, в то время как в Cygwin, как и в Windows, данный символ может использоваться для разделения каталогов. В итоге, через создание специально модифицированного репозитория, содержащего символические ссылки и файлы с символом обратного слэша, можно добиться перезаписи произвольных файлов при загрузке данного репозитория в Cygwin (в Git для Windows аналогичная уязвимость была исправлена в 2019 году). Получив возможность перезаписи файлов, атакующий может переопределить hook-вызовы в git и добиться выполнения произвольного кода в системе.

  1. Главная ссылка к новости (https://www.mail-archive.com/c...)
  2. OpenNews: Новая версия Cygwin 3.2.0, GNU-окружения для Windows
  3. OpenNews: Уязвимость в GitHub Actions, допускающая подстановку команд
  4. OpenNews: Критическая уязвимость в Git LFS, проявляющаяся на платформе Windows
  5. OpenNews: GitHub устранил уязвимость, приводившую к подмене сеанса пользователя
  6. OpenNews: Обновление Git с устранением уязвимости, допускающей удалённое выполнение кода
Лицензия: CC-BY
Тип: Проблемы безопасности
Короткая ссылка: https://opennet.ru/55027-cygwin
Ключевые слова: cygwin, git
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, VINRARUS (ok), 11:16, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Фу.
     
  • 1.2, Аноним (2), 11:20, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Спрашивается, зачем использовать cygwin, если есть православный GNU/Linux?
     
     
  • 2.3, proninyaroslav (ok), 11:22, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Зачем использовать cygwin, если есть православный WSL
     
     
  • 3.4, Аноним (4), 11:24, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Раньше использовал для разработки, но сейчас перешёл на винду в VMWare. Перезагружаться уже не нужно, а в последней версии допилили графику до вменяемого состояния, DirectX 11 в виртуалке работает на ура.
     
  • 3.12, Аноним (12), 12:39, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +8 +/
    WSL уже закопали. Сейчас WSL2, а оно есть виртуалка, в которой запускается почти GNU/Linux.
     
     
  • 4.37, Аноним (37), 08:44, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Зачем нужен WSL2, если VirtualBox я могу и сам запустить?
     
     
  • 5.40, Аноним (40), 11:55, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    A virtualBox также быстро будет стартовать? также хорошо будет интегрирован с системой (шереные папки, сеть, динамич выделение памяти) без доп. настроек?
     
     
  • 6.48, 1 (??), 00:34, 27/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Конечно, это все давно есть
     
     
  • 7.50, A (?), 21:41, 28/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Тока плохо работает у обоих.
     
  • 2.5, Аноним (5), 11:27, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Cygwin нужен чтобы получить юзабельное GNU/Windows окружение. Т.е. ConEmu+Msys2.
     
     
  • 3.6, IRASoldier_registered (ok), 11:35, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ну что ты, как же ж так же ж, это ж Виндой пользоваться! Это ж позор страшный!
     
     
  • 4.18, Аноним (-), 13:07, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Ну что ты, как же ж так же ж, это ж Виндой пользоваться! Это ж позор страшный!

    Причем, с сугубо местным, "понятийным" определением "пользования" - ну там, как обычно, считаются только "пассивы" или "забутявил винду в день пару раз - все еще не виндораз!".


     
  • 2.7, лолшто (?), 11:45, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Какое весло вручили, с тем и гребешь...
     
     
  • 3.8, Аноним (8), 11:49, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Знаешь, вращал я такие шараги на своём журнале.
     
     
  • 4.20, Dzen Python (ok), 13:20, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Ты главное цепь, к пулемету идущую, поправь, чтобы не звенела, бунар-р-р-ь.
    Потому, что как раз именно в шарагах админы не следят за лицензионностью установленного ПО на машинах (не важно, винда там или лянекс), а потом скачут на задней лапке перед заряженным ОБЭП. И подношения несут. Так что тут действительно, или работаешь на лицензионном "жричодали", или обосновываешь закупку себе отдельной лицензии на линукс (или мак в сборе, опечатанный) с наклеечкой и договором.
     
     
  • 5.31, Аноним (8), 21:16, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Всё синтезированное тобою - слишком дикий бред. Как-то стрёмно у вас в совке живётся. А по поводу - "чё дали" - у меня есть свои предпочтения, и я сам знаю какой дистрибутив линукса мне лучше накатить.

    Здесь например, даже в тех шарагах, где "жричедали" - после ухода нескольких поколений разрабов уже начинают задумываться о стандартизации бубунточки. Так чтобы не "по запросу", а сразу человек мог выбрать.

     
  • 3.44, Аноним (44), 14:16, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    >Какое весло вручили, с тем и гребешь...

    А если ложку дали?

     
     
  • 4.47, Albertio (ok), 20:28, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Проверь, есть ли в ней дырка
     

  • 1.9, Аноним (8), 11:50, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > Уязвимость в Git для Cygwin

    Пусть этот цинвин поначалу хоть в вайне запустится!

     
     
  • 2.30, Аноним (30), 20:20, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Cygwin в WINE? Мсье знает толк...
     
     
  • 3.32, Аноним (8), 21:17, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    А почему бы и нет? Доказательство сквозной работоспособности.
     
     
  • 4.39, Аноним (39), 11:30, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Задачи "обеспечить сквозную работоспособность" никогда не стояло ни у цигвина, ни у вайна, так что претензии по этому поводу можете отправлять прямо в Спортлото.
     

  • 1.10, Аноним (10), 12:21, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    -#ifdef GIT_WINDOWS_NATIVE
    +#if defined GIT_WINDOWS_NATIVE || defined __CYGWIN__
    if (c == '\\')
    return 0;
    #endif


    Проблема решена, расходимся.
    Зачем вообще в Cygwin такие пути файлов?

     
     
  • 2.21, PHPoenX (ok), 13:49, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Это не "пути cygwin", а пути замечательной ntfs, где всё через пятую точку
     
  • 2.34, Онаним (?), 23:52, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хрен она решена. Там помимо гита наверняка 100500 таких же граблей разложено.
    Есть мысль, что единственное решение - из цигвина поддержку \ в путях выпилить.
     

  • 1.11, Аноним (11), 12:23, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >> что приводит к отсутствию ограничений на использование символа '\' в пути

    Линуксойды до сих пор считают себя единственной расой во вселенной? :D

     
     
  • 2.14, Аноним (12), 12:45, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Но у соседних расс: всеBSD, MacOS, '\' тоже означает экранирование следующего символа.
     
  • 2.17, Аноним (17), 12:57, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    а нехрен было создателям вантуза выпендриваться и юзать какие-то бэкслеши в качестве разделителя. Я б на месте мейнтейнеров вообще забил бы на проблему — вантузоидам не привыкать торчать голой опой во все шесть сторон одновременно.
     
     
  • 3.24, Ordu (ok), 16:31, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > а нехрен было создателям вантуза выпендриваться и юзать какие-то бэкслеши в качестве разделителя.

    Они не выпендривались, они обратную совместимость тянули. Они строили венду как расширитель доса, а в досе, когда речь зашла о добавлении иерархии в фс, слеши вызывали необходимость ломать обратную совместимость:
    https://web.archive.org/web/20100612035120/http://blogs.msdn.com/b/larryosterm

    Это довольно забавно -- те программы, которые использовали слеши, чтобы выделить ключи, использовали слеш, и из-за которых решили использовать \ разделителем пути в досе, давно не существуют, а обратная совместимость с ними до сих пор.

     
     
  • 4.27, Аноним (12), 19:09, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Тогда в 1983-м, когда MS-DOS 2.0 вышла, могли бы смело в досовых утилитках поменять префикс для ключей на '-'. Всё равно, утилиnки шли с конкретной версией DOS.
     
     
  • 5.28, Ordu (ok), 19:34, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Могли бы, но что возьмёшь со старпёров, которые в дополнение к синдрому утёнка ещё и заботятся о том, чтобы существующие скрипты не сломались.
     
     
  • 6.33, i (??), 23:41, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • –1 +/
    хаха, тоже мне мальчик молодой
     
     
  • 7.35, Ordu (ok), 00:42, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Старпёр -- это не возраст, это состояние ума.
     
  • 5.41, пох. (?), 12:22, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    это только у вас, лап4...х так принято - взять и всем все сломать, ради всеобщего щастья (а на деле банальной лени разработчиков думать - что мы и получили с cygwin - ну кто бы мог подумать и было бы ему, чем, что у другой системы могут быть какие-то другие пути?)


    Именно по этой причине вы в гуане по шею и там и останетесь.

     
  • 4.38, Аноним (17), 10:11, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    ключи ставятся после названия проги: program.exe /?

    да, дос-вантуз позволяет пришпандоривать ключи непосредственно к названию экзешника, без пробела: program.exe/p/i/z/d/e/t/s

    ну так следовало просто требовать между ключами и названием проги ставить пробел, тогда команды бы интерпретировались однозначно: c:/hello.exe /?. Но нет, вантузоиды пошли своим особым "обратно-совместимым" путем (хоть и не совместимым со всем остальным миром, да глянь хотя бы на URL, там тоже нормальные слэши вместо вантузных)

     
     
  • 5.42, пох. (?), 12:25, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    > ну так следовало просто требовать между ключами и названием проги ставить пробел,

    кому следовало, зачем это следовало?

    Команды и так интерпретируются однозначно - интерпретатор не позволит подсунуть слэж как часть имени. Проблемы рукожопиков с ластами вместо рук - это их проблемы.

    > хоть и не совместимым со всем остальным миром

    каким еще "остальным миром" - вашим еще не родившимся л@тым гуаном?

    C rt11 да, получилось не очень совместимо, в ней вообще никаких каталогов не было.

     
  • 3.26, Аноним (26), 16:54, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Изначально была dos 1.0, которая не поддерживала каталоги, но зато были утилиты, написанные ibm, которые использовали / для передачи опций, например dir /w. В unix для этих целей использовали -.

    Потом, в dos 2.0, каталоги появились, но / уже был звнят, так что взяли обратный слэш, ну а потом понеслась обратная совместимость...

     
     
  • 4.29, turbo2001 (ok), 20:06, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • +2 +/
    И тут IBM поднаcpал.
     

  • 1.13, пох. (?), 12:40, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –5 +/
    > Уявзимость позволяет выполнить код злоумышленника при извлечении
    > данных ("git checkout") из репозитория,

    чорд, я один не понимаю, где тут очередная "увизгвимость", достойная аж целых статей впопеннета?

    Мы разьве эти самые данные...которые вообще-то скорее всего тоже код - не собирались выполнять? Чиста на посмотреть чекаутили?

    А, "это другое", да...

     
     
  • 2.22, Вертел мастдайку на кожаной оси (?), 13:58, 25/04/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ну да, у вас на шинодшс одной дыренью больше или меньше - без разницы, всё равно всё дырявое. А на нормальных системах люди, представь себе, веб и мобильной разработкой занимаются - и код из репозиториев запускается в изолированной среде.
     

  • 1.15, Аноним (12), 12:48, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Предполагаю, что в Git Msys2 это тоже уязвимость.
     
  • 1.19, Аноним (19), 13:15, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Какой ужас!
     
  • 1.23, Аноним (23), 15:07, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пора в лицензии прописать, что запускать линукс на платных платформах можно только после открытия всех спецификаций API проприетарщины чтобы Wine тоже мог быть полноценным.
     
     
  • 2.36, муу (?), 04:50, 26/04/2021 [^] [^^] [^^^] [ответить]  
  • –2 +/
    такие как ты понаписывают, да

    в cygwin (о котором речь в новости) линуксом который ядро даже и не пахнет
    там в основном GNU

     

  • 1.25, YetAnotherOnanym (ok), 16:43, 25/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > маловероятно, что кто-то своими руками собирает git для Cygwin, а не использует готовый пакет

    Тонко. Зачот.

     
  • 1.45, Аноним (45), 17:52, 26/04/2021 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну так windows, чему тут удивлсяться.
     
     
  • 2.49, Wilem82 (ok), 03:04, 27/04/2021 [^] [^^] [^^^] [ответить]  
  • +/
    Правильно писать GNU/Windows.
     

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



    Спонсоры:
    Inferno Solutions
    Ideco
    Hosting by Hoster.ru
    Хостинг:

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