Создатели Git устранили две критические уязвимости, которые позволяли выполнить произвольный код после успешной эксплуатации багов, связанных с переполнением буфера хипа.
Кроме того, был исправлен и третий, характерный только для Windows-систем недостаток, влияющий на Git GUI и связанный с недоверенным поисковым путем, который позволял неаутентифицированным злоумышленникам выполнять недоверенный код.
Первые две уязвимости (CVE-2022-41903 в механизме формирования коммитов и CVE-2022-23521 в парсере .gitattributes) были исправлены во всех версиях, начиная с 2.30.7.
Третья проблема, получившая идентификатор CVE-2022-41953, все еще ожидает патча, но сообщается, что пользователи могут смягчить риски, не используя Git GUI для клонирования репозиториев, а также избегая клонирования из ненадежных источников.
Все три проблемы были найдены экспертами из X41 и GitLab в рамках аудита исходного кода Git, спонсируемого OSTIF.
«Наиболее серьезная из обнаруженных проблем позволяет злоумышленнику инициировать повреждение информации в памяти хипа во время операций клонирования или извлечения, что может привести к выполнению произвольного кода. Другая критическая проблема позволяет выполнять код во время операции архивирования, — комментируют специалисты X41. — Кроме того, было выявлено огромное количество проблем, связанных с целыми числами, которые могут приводить к ситуациям отказа в обслуживании, out-of-bound чтению и плохой обработке тупиковых ситуаций, возникающих при обработке больших объемов ввода».
Наиболее эффективным способом защиты от всех обнаруженных проблем является обновление до последней версии Git (2.39.1).