Две уязвимости в Git, способные привести к удалённому выполнению кода

Discussion in 'Мировые новости. Обсуждения.' started by Suicide, 19 Jan 2023.

  1. Suicide

    Suicide Super Moderator
    Staff Member

    Joined:
    24 Apr 2009
    Messages:
    2,482
    Likes Received:
    7,063
    Reputations:
    693
    Опубликованы корректирующие выпуски распределённой системы управления исходными текстами 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" автоматически запускает некоторые команды пост-обработки, такие как выполнение программы spell-check для проверки правописания, при том, что пути поиска файла spell-check охватывают и клонированное рабочее дерево (атака сводится к добавлению spell-check в рабочее дерево репозитория).

     
    _________________________
    seostock, DartPhoenix and crlf like this.
Loading...