В Git устранили две критических уязвимости удаленного исполнения кода

Аудит исходных кодов Git, проведенный экспертами GitLab и германской ИБ-компании X41 D-SEC, выявил две ошибки переполнения буфера в куче, которые можно использовать для выполнения произвольного кода. Чтобы устранить уязвимости, оцененные в 9,8 балла CVSS, участники проекта выпустили обновления с патчами в ветках с 2.30 по 2.39.

Согласно сообщению X41, из найденных проблем наиболее опасна CVE-2022-23521 — порча памяти при выполнении команды clone или pull. Другая критическая уязвимость, CVE-2022-41903, проявляется при выполнении операции архивирования. Исследователи также обнаружили одну уязвимость высокой степени опасности, одну — средней и четыре — низкой опасности.

В бюллетенях, опубликованных на GitHub, поясняется, что в появлении CVE-2022-23521 повинен парсер.gitattributes. При разборе таких файлов возникают множественные ошибки целочисленного переполнения, которые могут повлечь чтение или запись произвольных данных в куче.

Уязвимость CVE-2022-41903, согласно бюллетеню, кроется в механизме форматирования коммитов. Целочисленное переполнение, возникающее при обработке паддинг-операторов — таких как %<(, %>( и т. п., грозит записью произвольных данных в куче.

Уязвимость высокой степени опасности (CVE-2022-41953, 8,6 балла CVSS) актуальна лишь для Windows-версий Git 2.39.0 и ниже. Она вызвана некорректной реализацией GUI-скрипта и проявляется как ненадежный путь к исполняемому файлу при клонировании репозиториев. В итоге открылась возможность удаленно выполнить код из недоверенного источника.

Обновления с патчами доступны с 17 января, пользователям настоятельно рекомендуется совершить апгрейд, установив новейшую сборку — 2.39.1. Тем, у кого пока нет такой возможности, советуют принять меры против эксплойта:

  • воздержаться от использования команды git archive в недоверенных репозиториях, а также команд git log –format с известными операторами;
  • при работе с недоверенными репозиториями отключить возможность выполнения команд git archive с помощью Git-демона (командой git config --global daemon.uploadArch false);
  • не использовать Git GUI на Windows при клонировании недоверенных репозиториев.
Подписывайтесь на канал "Anti-Malware" в Telegram, чтобы первыми узнавать о новостях и эксклюзивных материалах по информационной безопасности.