Две уязвимости в Git, които могат да доведат до дистанционно изпълнение на код

Публикувани са коригиращи версии на разпределената система за управление с исходни текстове Git 2.39.1, 2.38.3, 2.37.5, 2.36.4, 2.35.6, 2.34.6, 2.33.6, 2.32.5, 2.31.6 и 2.30.7, в които са отстранени две уязвимости, позволяващи изпълнението на произволен код на системата на потребителя при използване на командата "git archive" и работа с недостоверни външни репозитории. Уязвимостите са предизвикани от грешки в кода за форматиране на комити и анализа на файла ".gitattributes", които при обработка на външни репозитории могат да доведат до запис в паметта извън купчината и четене на произволни данни от паметта.

И двете уязвимости са открити по време на одит на сигурността на кода на Git, проведен от компанията X41 по поръчка на фонда OSTIF (Open Source Technology Improvement Fund), създаден с цел укрепване на сигурността на откритите проекти. Освен двете разглеждани по-долу критични проблеми, по време на одита е била открита и една опасна уязвимост, една уязвимост със средна степен на опасност и четири неопасни проблеми. Също така бяха дадени 27 препоръки за повишаване на сигурността на кода.

  • CVE-2022-41903: целочислено преливане в кода за форматиране на информация за комитите, което възниква при обработка на големи стойности на отместване в операторите за запълване, като "%<(, "%(, "%>>(" и "%><( "). Целочисленото преливане възниква в функцията format_and_pad_commit() поради използването на типа int за променливата size_t, която участва в определянето на размера на отместването на копирания блок при извикване на memcpy().

    Уязвимостта се проявява както при директно извикване с нарочно оформени параметри за форматиране (например, при стартиране на "git log —format=…"), така и при косвено приложение на форматирането по време на изпълнението на командата "git archive" в репозитория, контролирано от атакуващия. Във втория случай модификаторите за форматиране се задават чрез параметъра export-subst в файла ".gitattributes", който атакуващият може да постави в своя репозиторий. Проблемът може да бъде използван за четене и запис на произволни области в купчината и да доведе до изпълнение на код от злонамерен субект при работа с непроверени репозитории.

  • CVE-2022-23521: Целочислени преливания при разбиране на съдържанието на файлове с разширение «.gitattributes» в хранилище, проявяващи се при обработка на много голям брой шаблони на файлови пътища или голям брой атрибути с един шаблон, както и при разбиране на много големи имена на атрибути. Проблемът може да се използва за четене и запис на произволни области в купчината и да доведе до изпълнение на код от злонамерен актьор при работа с непроверено хранилище, в което атакуващият може да постави специално оформен файл .gitattributes и да осигури неговото попадане в индекса.

Публикацията на актуализации на пакети в дистрибуции може да бъде проследена на страниците: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD, NetBSD. За да се намали рискът от атака при невъзможност за навременно инсталиране на актуализация, се препоръчва да се въздържате от работа с ненадеждни хранилища и от използването на командата «git archive». Важно е да се помни, че командата «git archive» може да се изпълнява неявно, например, от git daemon. За да деактивирате стартирането на «git archive» в git daemon, следва да промените параметъра daemon.uploadArch с командата «git config —global daemon.uploadArch false».

Допълнително може да се отбележи още една уязвимост (CVE-2022-41953) в продукта Git for Windows, позволяваща организиране на изпълнение на код при клониране чрез графичния интерфейс на непроверени външни хранилища. Проблемът е причинен от факта, че Git GUI за Windows след операцията «checkout» автоматично стартира някои команди за постобработка, като изпълнение на програмата за проверка на правописа, при условие че пътищата за търсене на файла за проверка на правописа обхващат и клонираното работно дърво (атаката сводится до добавяне на проверка на правописа в работното дърво на хранилището).

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

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster