Уязвимость в Git, допускающая выполнение кода при клонировании из вредоносного Git-репозитория
- Выпущены Git 2.56.1, 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 и 2.50.2 с исправлениями шести уязвимостей.
- CVE-2026-111760 позволяет выполнить код при клонировании вредоносного репозитория с параметром --recurse-submodules.
- Другие уязвимости позволяют выходить за пределы refs, перезаписывать файлы, переполнять стек и работать с произвольными файлами через fast-import.
Почему это важно: Уязвимости могут привести к выполнению кода, перезаписи файлов и чтению или созданию произвольных файлов.
Опубликованы корректирующие выпуски распределённой системы управления исходным кодом Git 2.56.1, 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 и 2.50.2, в которых устранено 6 уязвимостей. Наиболее опасная уязвимость (CVE-2026–111760) позволяет добиться выполнения кода при применении команды «git clone» в режиме »--recurse-submodules» с репозиториями, подконтрольными атакующему.
Проблема вызвана тем, что длина записи с именем в индексе вычисляется с использованием 64-разрядного целого типа size_t, а хранится в 32-разрядном поле ce_namelen. При передаче очень длинного имени вида ».gitA/AAA…» возникает усечение значения и атакующий может добиться сохранения длины равной 4 байтам. В итоге, при проверке значения используются фактические данные, а при выполнении операции записи — усечённая версия ».git», что позволяет атакующему заменить файл ».git» в субмодуле на символическую ссылку, указывающую на каталог с настройками и хуками.
Другие уязвимости:
CVE-2026–113408 — выход за пределы каталога refs/ через передачу в качестве ветки HEAD символической ссылки со значением «refs/heads/…/…/…/TARGET» при клонировании пустого репозитория по протоколу Git v2. При последующем выполнении «git commit» будет создан файл TARGET в корне репозитория, что можно использовать для перезаписи файлов в репозитории.
CVE-2026–114467 — переполнение стека при удалении GPG-подписей, которое потенциально может привести к выполнению произвольного кода. Проблема вызвана тем, что функция remove_signature () хранит позиции подписей в фиксированном массиве, рассчитанном максимум на две подписи. При слиянии тега с тремя и более подписями данные сохраняются вне массива.
CVE-2026–114469 — при проверке ограничений на размер бинарных патчей учитывались данные до распаковки сжатых данных, что приводило к чтению содержимого из области вне границ буфера.
CVE-2026–105437 — повреждение памяти при выполнении больших операций слияния из-за накопления размера результата в поле с типом int. В конфигурации GitLab с сервисом Gitaly уязвимость может быть эксплуатирована для выполнения кода (проблема блокирована в GitLab 19.5.4).
CVE-2026–114466 — чтение и создание произвольных файлов в ФС через команду «git fast-import» из-за не попадание некоторых новых возможностей fast-import под ограничения, добавленные для устранения старой уязвимости CVE-2019–1348.
Источник: http://www.opennet.ru/opennews/art.shtml? num=66669
© OpenNet
