Уязвимости в Git, позволяващи перезапис на файлове или изпълнение на собствен код

Публикувани са корективни версии на разпределената система за управление на изходния код Git 2.40.1, 2.39.3, 2.38.5, 2.37.7, 2.36.6, 2.35.8, 2.34.8, 2.33.8, 2.32.7, 2.31.8 и 2.30.9, в които са отстранени пет уязвимости. Следете за актуализациите на пакетите в дистрибутивите на страниците на Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD. Като мерки за защита от уязвимостите се препоръчва да се избягва изпълнението на командата «git apply —reject» при работа с непроверени външни пачове и да се проверява съдържанието на $GIT_DIR/config преди стартиране на командите «git submodule deinit», «git config —rename-section» и «git config —remove-section» при работа с ненадеждни хранилища.

Уязвимостта CVE-2023-29007 позволява подмяна на настройките в конфигурационния файл $GIT_DIR/config, които могат да бъдат използвани за изпълнение на код в системата чрез указване на пътища до изпълняеми файлове в директивите core.pager, core.editor и core.sshCommand. Уязвимостта е причинена от логическа грешка, при която много дълги стойности на конфигурацията могат да бъдат обработени като начало на нова секция при операция по преименуване или изтриване на секция в конфигурационния файл. На практика подмяната на експлоатируемите стойности може да бъде постигната чрез указване на много дълги URL адреси на субмодулите, които се записват в файла $GIT_DIR/config по време на инициализация. Тези URL адреси могат да бъдат интерпретирани като нови настройки при опит за тяхното изтриване чрез «git submodule deinit».

Уязвимостта CVE-2023-25652 позволява презаписване на съдържанието на файлове извън работната директория при обработка на специално оформени пачове с командата «git apply —reject». При опит за изпълнение на команда «git apply» с вредоносен пач, който се опитва да запише в файл чрез символична връзка, операцията ще бъде отхвърлена. В Git 2.39.1 защитата срещу манипулации чрез символични връзки беше разширена с блокиране на пачове, създаващи символични връзки и опитващи се да изпълнят запис чрез тях. Същността на разглежданата уязвимост е, че Git не е взел предвид, че потребителят може да изпълни командата «git apply —reject», за да запише отхвърлените части от пача като файлове с разширение «.rej», и атакуващият може да използва тази възможност, за да запише съдържание в произволен каталог, в зависимост от текущите права за достъп.

Освен това, са отстранени три уязвимости, проявяващи се само на платформата Windows: CVE-2023-29012 (търсене на изпълнима doskey.exe в работната директория на репозитория при изпълнение на командата „Git CMD“, което позволява извършване на собствен код в системата на потребителя), CVE-2023-25815 (препълване на буфера при обработка на специално форматирани файлове за локализация в gettext) и CVE-2023-29011 (възможност за подмяна на файла connect.exe при работа през SOCKS5).

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

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