КибербезопасностьСистемное администрирование

Git закрыл CVE-2026-111760: рекурсивный клон мог выполнить код из подмодуля

В Git 2.56.1 и поддерживаемых ветках исправлена ошибка обработки индекса: слишком длинный путь обходил проверку и позволял подменить файл .git в подмодуле симлинком на каталог с чужими хуками.

Что случилось

Проект Git выпустил исправление уязвимости CVE-2026-111760: вредоносный репозиторий мог выполнить код на машине, которая клонирует его рекурсивно вместе с подмодулями. Исправление вошло в Git 2.56.1 и в поддерживаемые ветки — 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1 и 2.55.1.

Детали

Причина — целочисленное усечение при работе с индексом. Слишком длинный путь в репозитории проходил проверку безопасности, но при записи на диск Git сохранял его под укороченным именем, которое атакующий мог задать как .git. В результате в свежесклонированном подмодуле, где .git — это обычный файл, а не каталог, появлялась возможность подменить его символической ссылкой на каталог с чужими хуками и конфигурацией. Хуки — это программы, которые Git запускает в определённые моменты, так что дальше код атакующего выполняется сам.

Git отказывается заменять каталог .git симлинком, и именно поэтому атака строится на подмодуле: там .git — файл, а не каталог. Исправленные версии отвергают чрезмерно длинные пути до того, как длина будет усечена.

  • GitHub уже применил исправления на github.com и в GitHub Enterprise Cloud;
  • для GitHub Enterprise Server исправления в версиях 3.19.15, 3.20.11, 3.21.9 и 3.22.4;
  • Git for Windows на момент публикации ещё не выпустил сборку на основе 2.56.1;
  • GitHub Desktop и приложение GitHub Copilot ждут обновления.

В том же выпуске закрыто ещё несколько дыр. CVE-2026-113408: при клоне пустого репозитория по протоколу v2 сервер может прислать имя ветки с обходом каталогов, и последующее обновление ветки запишет данные вне каталога ссылок. CVE-2026-114467: слияние тега с более чем двумя подписями GPG портит стек и приводит к отказу в обслуживании. CVE-2026-114469: бинарный патч, разворачивающийся больше гигабайта, обходит ограничение размера и роняет Git чтением за границей буфера. CVE-2026-114466: три возможности fast-import — rewrite-submodules-from, rewrite-submodules-to и export-pack-edges — позволяли читать произвольные файлы и создавать их; теперь они отклоняются без флага --allow-unsafe-features.

Отдельно стоит CVE-2026-105437, которую назначил GitLab. Большое слияние с множеством конфликтов и большим значением атрибута conflict-marker-size вызывает переполнение кучи. Атрибут задаётся в .gitattributes, который лежит в самом репозитории, поэтому достаточно права пушить ветки и открывать запрос на слияние. Серверы хостинга кода вызывают git merge-tree, чтобы проверить, сливается ли запрос, — и становятся уязвимыми.

Что это значит

Обновлять нужно не только сам Git на рабочих машинах, но и всё, что несёт его внутри: серверы GitLab, Gitea и Forgejo, CI-раннеры, сборщики, devcontainer-образы. Именно хостинги кода интересны атакующим в первую очередь: там чужие репозитории обрабатываются постоянно и автоматически.

Временная мера для серверов, которые пока не обновились, — добавить conflict-marker-size=7 в файл info/attributes каждого репозитория либо отключить проверки слияния для недоверенных репозиториев. Это не заменяет патч, но снимает самый простой вектор. И общее правило, которое стоит перенести в регламент: не запускать git clone --recursive по ссылкам из непроверенных источников на машинах с доступом к инфраструктуре.

Комментарии 0

Комментариев пока нет — будьте первым.

Оставить комментарий

Имя и текст — этого достаточно. Комментарий появится сразу; подозрительные сообщения уходят на проверку.

Сдвиньте ползунок вправо для проверки
Спам и реклама блокируются автоматически.
Читайте также

Похожие публикации

11 Ноя

Patch Tuesday: 1235 уязвимостей за день и zero-day в Outlook, уводящая NTLM-хеши

Microsoft закрыла рекордные 1235 уязвимостей за один выпуск, 66 из них критические, и устранила эксплуатируемую zero-day в Outlook: специальное вложение заставляет клиент отдать NTLMv2-хеш учётной записи.

→
11 Ноя

Xen Orchestra: обход входа пустой cookie и захват гипервизоров XCP-ng под root

Vates подтвердила эксплуатацию VSA-2026-062: подделанная cookie с пустым JSON-объектом даёт права администратора Xen Orchestra, а оттуда — выполнение кода в пулах и полный захват узлов XCP-ng.

→
11 Ноя

AMD EPYC 9006: 256 ядер Zen 6c, 1 ГБ кеша L3 и старт поставок платформы SP7

AMD начала поставки серверных EPYC 9006 Venice на сокете SP7: до 256 ядер Zen 6c, 16 каналов DDR5-8000 или MRDIMM-12800, 96 линий PCIe 6.0 и цена флагмана 14 904 доллара за штуку в партии от тысячи.

→