Публикация разн.выпуски системных исправлений распределенный контроль версий Гит, в котором реализованы два исправления уязвимостей которые были обнаружены.
Относительно обнаруженных фаллосов упоминается, что эти позволяют организовать выполнение вашего кода в системе пользователя при использовании команды «git archive» и работе с ненадежными внешними репозиториями.
Уязвимости вызваны ошибками в коде формата коммита и парсинге файла «.gitattributes», которые при обработке внешних репозиториев могут привести к записи в область памяти вне кучи и чтению произвольных данных из памяти.
Обе уязвимости были выявлены в ходе аудита безопасности кодовой базы Git, Сделано X41 для OSTIF (Фонда улучшения технологий с открытым исходным кодом), созданного для повышения безопасности проектов с открытым исходным кодом.
В дополнение к двум критическим проблемам, описанным ниже, аудит также обнаружил одну серьезную уязвимость, одну уязвимость средней степени серьезности и четыре неопасные проблемы. Кроме того, было сделано 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 и убедиться, что он попадет в индекс.
Кроме того, можно указать еще на одну уязвимость (CVE-2022-41953) в продукте Git для Windows, что позволяет организовать выполнение кода при клонировании непроверенных внешних репозиториев через графический интерфейс.
Проблема связано с тем, что Git для Windows GUI после операции из "Проверь себяt» автоматически запускает некоторые команды постобработки, такие как запуск программы проверки орфографии для проверки орфографии, даже несмотря на то, что пути поиска файлов проверки орфографии охватывают клонированное рабочее дерево (атака сводится к добавлению программы проверки орфографии в дерево задания репозитория ).
Выпуск обновлений пакетов в дистрибутивах можно отслеживать на страницах: Debian, Ubuntu, Gentoo, RHEL, SUSE, Arch, FreeBSD y NetBSD
Чтобы снизить риск атаки если обновление не может быть установлено своевременно, рекомендуется воздержаться от работы с ненадежными репозиториями и с помощью команды «git archive».
Важно помнить, что команда "git архив» можно запустить неявно, например, из демона git. Чтобы отключить выполнение «git-файлe» в демоне git измените параметр daemon.uploadArch с командой "git config --global daemon.uploadArch false».