Уязвимость в Git позволяет запускать код через вредоносные репозитории
В Git выявлена уязвимость CVE-2026-111760, которая позволяет злоумышленнику через вредоносный репозиторий выполнить свой код на компьютере, клонирующем его рекурсивно вместе с подмодулями. Исправления вышли в Git 2.56.1 и в ряде более старых версий.

Главное в цифрах
- Идентификатор уязвимости: CVE-2026-111760
- Исправленная версия: Git 2.56.1
- Исправления для GitHub Enterprise Server: 3.19.15, 3.20.11, 3.21.9, 3.22.4
Ошибка связана с целочисленным усечением при работе с индексом Git. Слишком длинный путь проходит проверку безопасности, но записывается на диск под более коротким именем, которое злоумышленник может задать как .git.
Так он заменяет файл .git в подмодуле символической ссылкой на папку с вредоносными хуками или конфигурацией. Хуки это программы, которые Git запускает в заданных точках. Когда Git обращается к этой папке, код злоумышленника выполняется. Подмодули здесь важны: Git не позволяет заменить папку .git символической ссылкой, но в только что клонированном подмодуле .git является файлом.
Исправления и затронутые версии
Исправления вышли в Git 2.56.1, а также в 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1 и 2.55.1. Исправленные версии отказываются принимать слишком длинные пути до того, как их длина может быть обрезана.
GitHub уже применил исправления на github.com и в GitHub Enterprise Cloud. Для GitHub Enterprise Server патчи есть в версиях 3.19.15, 3.20.11, 3.21.9 и 3.22.4. Исправления для GitHub Desktop и приложения GitHub Copilot готовятся. На момент проверки сборка Git for Windows на основе Git 2.56.1 еще не была выпущена.
В тех же релизах исправлены еще пять уязвимостей. Администраторам стоит обновить Git и все приложения, которые поставляют собственную копию Git.
Отдельная уязвимость в GitLab
GitLab присвоил другой уязвимости идентификатор CVE-2026-105437. По его данным, серверы хостинга кода чаще всего будут атаковаться через команду git merge-tree, которую они используют для проверки возможности слияния запросов. Атрибут conflict-marker-size можно задать в файле .gitattributes, закоммиченном в репозиторий. Если сервер читает атрибуты из репозитория, любой пользователь, который может отправлять ветки и открывать запросы на слияние, способен вызвать эту уязвимость.
Серверам, которые пока не могут обновиться, GitLab советует добавить строку conflict-marker-size=7 в файл info/attributes каждого репозитория или отключить такие проверки слияния для недоверенных репозиториев.

