Критические уязвимости в Git: 6 CVE, патчи в 2.56.1–2.50.2 — обновиться нужно всем

10 ноября 2026 года проект Git выпустил корректирующие релизы, закрывающие шесть уязвимостей, включая выполнение чужого кода при рекурсивном клонировании. Патчи вышли в семи ветках, от 2.56.1 до 2.50.2. Обновить стоит все копии Git, включая встроенные в сторонние продукты. Подтверждённой активной эксплуатации нет, но читатели OpenNet напоминают: обновления доступны уже несколько дней — тянуть не стоит.

Главная дыра — подмена .git через усечённый путь

Наиболее опасна CVE-2026-111760. При обработке индекса сверхдлинный путь вида «.gitA/AAA…» проходит проверку под полным именем, а записывается под коротким «.git» — целочисленное усечение (по данным OpenNet, 64-разрядный size_t усекается до 32-разрядного поля ce_namelen). Атакующий подменяет файл .git субмодуля символической ссылкой на каталог с чужими хуками и конфигурацией — и при клонировании с --recurse-submodules Git исполняет эти хуки — код атакующего. Сработало потому, что подменить каталог .git симлинком Git не даёт, а во свежесклонированном субмодуле .git — файл. SecurityOnline даёт 8.0 (High) по CVSSv3, NVD баллов не присвоила.

Остальные пять уязвимостей

CVEСуть проблемы
CVE-2026-105437Переполнение при расчёте размера больших слияний (int) — heap buffer overflow; в GitLab+Gitaly — выполнение команд через git merge-tree (через conflict-marker-size в .gitattributes)
CVE-2026-114467Повреждение стека в remove_signature(): массив рассчитан на 2 GPG-подписи, три и более в теге пишут за его пределы
CVE-2026-114469Лимит бинарных патчей ~1 GiB проверялся по сжатому размеру: разворачивающийся за лимит патч — чтение вне буфера и крах
CVE-2026-113408Запись вне каталога refs/ через symref HEAD («refs/heads/../../../TARGET») при клонировании пустого репозитория по протоколу Git v2
CVE-2026-114466fast-import: rewrite-submodules-from, rewrite-submodules-to и export-pack-edges не закрыты после CVE-2019-1348 — чтение произвольных файлов с раскрытием в ошибках

Дополнительно добавлены проверки переполнения при выделении памяти под записи индекса при checkout и обработке деревьев.

Хостинги и дистрибутивы

GitHub закрыл дыры на github.com и в Enterprise Cloud; для Enterprise Server вышли патчи 3.19.15, 3.20.11, 3.21.9 и 3.22.4. Готовятся сборки GitHub Desktop, приложения Copilot, Codespaces и Actions с пропатченным Git; Git for Windows на 19:09 UTC 10 ноября ещё не выпустил сборку на базе 2.56.1.

GitLab в тот же день выпустил критические релизы 19.5.4, 19.4.6 и 19.3.8 с обновлённым Git в Gitaly (CVE-2026-105437); уязвимы версии CE/EE с 16.2. GitLab.com и GitLab Dedicated уже закрыты; self-managed нужен апдейт Gitaly или пересборка Git из ветки Gitaly stable. Обходной путь: conflict-marker-size=7 в info/attributes каждого репозитория либо отключение проверок слияния для недоверенных.

В Debian на 12 ноября исправлений нет: git уязвим во всех актуальных ветках, заведён bug 1153670. Red Hat даёт CVE-2026-113408 5.4 (Moderate): нужен вредоносный или скомпрометированный репозиторий, выполнения кода и повышения привилегий уязвимость не даёт; для RHEL 9/10 — Fix deferred.

Данные расходятся: бэкпорты CVE-2026-105437 — по официальному анонсу до 2.50.2, по SecurityOnline — вплоть до 2.49.1; серьёзность: GitLab — Critical, SecurityOnline — 7.5, NVD молчит.

Что делать, пока патч не установлен

  1. Проверяем версию (git --version) и обновляемся до 2.56.1 или патча своей ветки.
  2. Не клонируем недоверенные репозитории рекурсивно с --recurse-submodules — главная дыра срабатывает именно так.
  3. Клонируем только с доверенных серверов, не сливаем недоверенный контент и теги.
  4. Не обрабатываем бинарные патчи и fast-import-потоки из недоверенных источников.
  5. На серверах без обновления — обходной путь с conflict-marker-size=7.

Меры не заменяют установку исправлений.

Ваш опыт?

В русскоязычных изданиях новость появилась 12 ноября, патчи же доступны с 10-го. Расскажите в комментариях: что принёс ваш дистрибутив, обновились ли на серверах, пользуетесь ли рекурсивными клонами недоверенных репозиториев?

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

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

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

(0 Votes)