Git
Уязвимости
56
Эксплуатируемые
1
Макс. CVSS
9.8
Макс. EPSS
0.97356
Распределение по критичности
Критический
7
Высокий
32
Средний
9
Низкий
8
Также сопоставлено как (исходные строки): git
Топ уязвимостей
CVE-2022-41903Git — это распределённая система контроля версий. `git log` может отображать коммиты в произвольном формате, используя свои спецификаторы `--format`. Эта функциональность также доступна для `git archive` через атрибут gitattribute `export-subst`. При обработке операторов заполнения происходит переполнение целого числа в `pretty.c::format_and_pad_commit()`, где `size_t` неправильно сохраняется как `int`, а затем добавляется в качестве смещения к `memcpy()`. Это переполнение может быть вызвано непосредственно пользователем, запускающим команду, которая вызывает механизм форматирования коммитов (например, `git log --format=...`). Оно также может быть вызвано косвенно через git archive с помощью механизма export-subst, который развёртывает спецификаторы формата внутри файлов в репозитории во время архивации git. Это переполнение целого числа может привести к произвольным записям в кучу, что может привести к выполнению произвольного кода. Проблема была исправлена в версиях, опубликованных 17 января 2023 года, начиная с v2.30.7. Пользователям рекомендуется обновиться. Пользователи, которые не могут обновиться, должны отключить `git archive` в ненадёжных репозиториях. Если вы открываете git archive через `git daemon`, отключите его, запустив `git config --global daemon.uploadArch false`.
CVE-2022-23521Git — это распределенная система управления версиями. gitattributes — это механизм, позволяющий определять атрибуты для путей. Эти атрибуты могут быть определены путем добавления файла `.gitattributes` в репозиторий, который содержит набор шаблонов файлов и атрибутов, которые должны быть установлены для путей, соответствующих этому шаблону. При разборе gitattributes могут возникнуть множественные переполнения целых чисел, когда имеется большое количество шаблонов путей, большое количество атрибутов для одного шаблона или когда объявленные имена атрибутов велики. Эти переполнения могут быть вызваны созданным вручную файлом `.gitattributes`, который может быть частью истории коммитов. Git молча разделяет строки длиннее 2 КБ при разборе gitattributes из файла, но не при разборе из индекса. Следовательно, режим отказа зависит от того, существует ли файл в рабочем дереве, индексе или в обоих. Это переполнение целого числа может привести к произвольному чтению и записи в кучу, что может привести к удаленному выполнению кода. Проблема была исправлена в версиях, опубликованных 17 января 2023 года, начиная с v2.30.7. Пользователям рекомендуется обновиться. Неизвестны обходные пути для этой проблемы.
CVE-2016-2324Целочисленное переполнение в Git до версии 2.7.4 позволяет удаленным злоумышленникам выполнять произвольный код через (1) длинное имя файла или (2) множество вложенных деревьев, что вызывает переполнение буфера на основе кучи.
CVE-2016-2315revision.c в Git до версии 2.7.4 использует неправильный тип целочисленных данных, что позволяет удаленным злоумышленникам выполнять произвольный код через (1) длинное имя файла или (2) множество вложенных деревьев, что приводит к переполнению буфера на основе кучи.
CVE-2015-7545(1) git-remote-ext и (2) другие неуказанные вспомогательные программы удаленного доступа в Git версий до 2.3.10, 2.4.x версий до 2.4.10, 2.5.x версий до 2.5.4 и 2.6.x версий до 2.6.1 неправильно ограничивают разрешенные протоколы, что может позволить удаленным злоумышленникам выполнять произвольный код через URL-адрес в файле (a) .gitmodules или (b) других неизвестных источниках в подмодуле.
CVE-2014-9390Git до версий 1.8.5.6, 1.9.x до 1.9.5, 2.0.x до 2.0.5, 2.1.x до 2.1.4 и 2.2.x до 2.2.1 в Windows и OS X; Mercurial до версии 3.2.3 в Windows и OS X; Apple Xcode до версии 6.2 beta 3; mine всех версий до 08-12-2014; libgit2 всех версий до 0.21.2; Egit всех версий до 08-12-2014; и JGit всех версий до 08-12-2014 позволяют удаленным серверам Git выполнять произвольные команды через дерево, содержащее специально созданный файл .git/config с (1) игнорируемой кодовой точкой Unicode, (2) представлением git~1/config или (3) смешанным регистром, который неправильно обрабатывается в файловой системе, нечувствительной к регистру.
CVE-2024-32002Git — это система контроля версий. До версий 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 и 2.39.4 репозитории с подмодулями могут быть созданы таким образом, что они эксплуатируют ошибку в Git, в результате чего его можно ввести в заблуждение, заставив писать файлы не в рабочую директорию подмодуля, а в директорию `.git/`. Это позволяет писать хуки, которые будут выполняться, пока операция клонирования еще продолжается, не давая пользователю возможности проверить исполняемый код. Проблема была исправлена в версиях 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 и 2.39.4. Если поддержка символьных ссылок отключена в Git (например, через `git config --global core.symlinks false`), описанная атака не сработает. Как всегда, лучше избегать клонирования репозиториев из ненадежных источников.
CVE-2022-39260Git — это масштабируемая распределенная система контроля версий с открытым исходным кодом. `git shell` — это оболочка ограниченного входа в систему, которую можно использовать для реализации функциональности push/pull Git через SSH. В версиях до 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3 и 2.37.4 функция, которая разбивает аргументы команды на массив, неправильно использует `int` для представления количества записей в массиве, что позволяет злоумышленнику намеренно переполнить возвращаемое значение, что приводит к произвольной записи в кучу. Поскольку результирующий массив затем передается в `execv()`, можно использовать эту атаку для получения удаленного выполнения кода на машине жертвы. Обратите внимание, что жертва должна сначала разрешить доступ к `git shell` в качестве оболочки входа в систему, чтобы быть уязвимой для этой атаки. Эта проблема исправлена в версиях 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3 и 2.37.4, и пользователям рекомендуется обновиться до последней версии. Отключение доступа `git shell` через удаленные входы в систему является жизнеспособным краткосрочным решением.
CVE-2019-1354Существует уязвимость удаленного выполнения кода, когда Git для Visual Studio неправильно обрабатывает ввод, также известная как «Уязвимость удаленного выполнения кода Git для Visual Studio». Этот CVE ID уникален от CVE-2019-1349, CVE-2019-1350, CVE-2019-1352, CVE-2019-1387.
CVE-2019-1350Существует уязвимость удаленного выполнения кода, когда Git для Visual Studio неправильно обрабатывает ввод, также известная как «Уязвимость удаленного выполнения кода Git для Visual Studio». Этот CVE ID уникален от CVE-2019-1349, CVE-2019-1352, CVE-2019-1354, CVE-2019-1387.
CVE-2018-17456Git до версий 2.14.5, 2.15.x до 2.15.3, 2.16.x до 2.16.5, 2.17.x до 2.17.2, 2.18.x до 2.18.1 и 2.19.x до 2.19.1 допускает удаленное выполнение кода во время обработки рекурсивного «git clone» суперпроекта, если файл .gitmodules имеет поле URL, начинающееся с символа «-».
CVE-2018-11235В Git до 2.13.7, 2.14.x до 2.14.4, 2.15.x до 2.15.2, 2.16.x до 2.16.4 и 2.17.x до 2.17.1 может произойти удаленное выполнение кода. С помощью специально созданного файла .gitmodules вредоносный проект может выполнить произвольный скрипт на компьютере, на котором выполняется «git clone --recurse-submodules», поскольку «имена» подмодулей получаются из этого файла, а затем добавляются к $GIT_DIR/modules, что приводит к обходу каталогов с «../» в имени. Наконец, выполняются хуки post-checkout из подмодуля, минуя предполагаемую конструкцию, в которой хуки не получаются с удаленного сервера.
CVE-2025-48385Git - это быстрая, масштабируемая распределенная система контроля версий. При клонировании репозитория Git может получить bundle, анонсированный удаленным сервером, что позволяет серверу разгрузить часть процесса клонирования на CDN. Клиент Git не выполняет достаточной проверки анонсированных bundle, что позволяет удаленной стороне выполнить инъекцию протокола. Это может привести к записи полученных данных в место, контролируемое злоумышленником, и потенциально к выполнению произвольного кода [1].
Рекомендуется отключить использование bundle URIs, контролируя его с помощью опции конфигурации bundle.heuristic. Также рекомендуется отключить рекурсивное клонирование с подмодулями [1].
Источники:
- [1] https://github.com/git/git/security/advisories/GHSA-m98c-vgpc-9655
CVE-2025-46334Git GUI позволяет использовать инструменты управления версиями Git через графический интерфейс. При клонировании недоверенного репозитория и запуске gitk без дополнительных аргументов могут быть созданы и изменены файлы, для которых у пользователя есть права на запись. Уязвимость исправлена в версиях 2.43.7, 2.44.4, 2.45.4, 2.46.4, 2.47.3, 2.48.2, 2.49.1 и 2.50.1.
Рекомендуется избегать клонирования репозиториев из недоверенных источников.
Источники:
- [1] https://github.com/j6t/git-gui/security/advisories/GHSA-7px4-9hg2-fvhx
- [2] https://github.com/j6t/git-gui/compare/dcda716dbc9c90bcac4611bd1076747671ee0906..a1ccd2512072cf52835050f4c97a4fba9f0ec8f9
CVE-2025-27614В Gitk, средстве просмотра истории Git на основе Tcl/Tk, обнаружена уязвимость, позволяющая выполнить произвольный код при определенных условиях. Злоумышленник может создать репозиторий Git, который при определенных условиях позволяет выполнить произвольный скрипт на системе пользователя. Исправлена в версиях 2.43.7, 2.44.4, 2.45.4, 2.46.4, 2.47.3, 2.48.2, 2.49.1 и 2.50. Источники:
- [1] https://github.com/j6t/gitk/security/advisories/GHSA-g4v5-fjv9-mhhc
- [2] https://github.com/j6t/gitk/commit/8e3070aa5e331be45d4d03e3be41f84494fce129
Источники:
- [1] https://github.com/j6t/gitk/security/advisories/GHSA-g4v5-fjv9-mhhc
- [2] https://github.com/j6t/gitk/commit/8e3070aa5e331be45d4d03e3be41f84494fce129
CVE-2025-46835Git GUI позволяет использовать инструменты управления версиями Git через графический интерфейс. Когда пользователь клонирует недоверенный репозиторий и обманным путем редактирует файл, расположенный в каталоге с вредоносным именем в репозитории, Git GUI может создать и перезаписать файлы, для которых у пользователя есть разрешение на запись. Эта уязвимость исправлена в версиях 2.43.7, 2.44.4, 2.45.4, 2.46.4, 2.47.3, 2.48.2, 2.49.1 и 2.50.1 [1].
Источники:
- [1] https://github.com/j6t/git-gui/security/advisories/GHSA-xfx7-68v4-v8fg
- [2] https://github.com/j6t/git-gui/compare/dcda716dbc9c90bcac4611bd1076747671ee0906..a437f5bc93330a70b42a230e52f3bd036ca1b1da
CVE-2024-32004Git — это система контроля версий. До версий 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 и 2.39.4 злоумышленник может подготовить локальный репозиторий таким образом, что при клонировании он выполнит произвольный код в процессе. Проблема была исправлена в версиях 2.45.1, 2.44.1, 2.43.4, 2.42.2, 2.41.1, 2.40.2 и 2.39.4. В качестве обходного пути избегайте клонирования репозиториев из ненадежных источников.
CVE-2025-48384Git - это быстрая, масштабируемая, распределенная система контроля версий с необычно богатым набором команд, обеспечивающая как высокоуровневые операции, так и полный доступ к внутренним компонентам. При чтении значения конфигурации Git удаляет любой завершающий возврат каретки и перевод строки (CRLF). При записи записи конфигурации значения с завершающим CR не заключаются в кавычки, что приводит к потере CR при последующем чтении конфигурации. При инициализации подмодуля, если путь подмодуля содержит завершающий CR, измененный путь считывается, в результате чего подмодуль проверяется в неправильном месте. Если существует символическая ссылка, указывающая измененный путь на каталог hooks подмодуля, и подмодуль содержит исполняемый хук post-checkout, скрипт может быть непреднамеренно выполнен после проверки [1]. Для устранения уязвимости необходимо обновить Git до версии v2.43.7 или выше.
Источники:
- [1] https://github.com/git/git/security/advisories/GHSA-vwqx-4fm8-6qc9
CVE-2023-29007Git - это система контроля версий. До версий 2.30.9, 2.31.8, 2.32.7, 2.33.8, 2.34.8, 2.35.8, 2.36.6, 2.37.7, 2.38.5, 2.39.3 и 2.40.1 специально созданный файл `.gitmodules` с URL подмодуля, превышающими 1024 символа, может использоваться для эксплуатации ошибки в `config.c::git_config_copy_or_rename_section_in_file()`. Эта ошибка может быть использована для инъекции произвольной конфигурации в `$GIT_DIR/config` пользователя при попытке удалить секцию конфигурации, связанную с этим подмодулем. Когда злоумышленник инжектирует значения конфигурации, которые указывают исполняемые файлы (такие как `core.pager`, `core.editor`, `core.sshCommand` и т. д.), это может привести к удаленному выполнению кода. Исправление доступно в версиях 2.30.9, 2.31.8, 2.32.7, 2.33.8, 2.34.8, 2.35.8, 2.36.6, 2.37.7, 2.38.5, 2.39.3 и 2.40.1. В качестве обходного решения следует избегать выполнения `git submodule deinit` на ненадежных репозиториях или без предварительного изучения любых секций подмодуля в `$GIT_DIR/config`.
CVE-2022-29187Git - это распределенная система контроля версий. Git до версий 2.37.1, 2.36.2, 2.35.4, 2.34.4, 2.33.4, 2.32.3, 2.31.4 и 2.30.5 уязвим для повышения привилегий на всех платформах. Ничего не подозревающий пользователь все еще может пострадать от проблемы, о которой сообщалось в CVE-2022-24765, например, при переходе в качестве root в общую временную директорию, которая принадлежит ему, но где злоумышленник может создать репозиторий git. Версии 2.37.1, 2.36.2, 2.35.4, 2.34.4, 2.33.4, 2.32.3, 2.31.4 и 2.30.5 содержат исправление для этой проблемы. Самый простой способ избежать воздействия эксплойта, описанного в примере, - это избегать запуска git от имени root (или администратора в Windows), и, если необходимо, свести его использование к минимуму. Хотя общий обходной путь невозможен, систему можно защитить от эксплойта, описанного в примере, удалив любой такой репозиторий, если он уже существует, и создав его от имени root, чтобы заблокировать любые будущие атаки.
CVE-2022-24765Git for Windows — это форк Git, содержащий исправления, специфичные для Windows. Эта уязвимость затрагивает пользователей, работающих на многопользовательских машинах, где ненадежные стороны имеют доступ на запись к одному и тому же жесткому диску. Эти ненадежные стороны могут создать папку `C:\.git`, которая будет подхвачена операциями Git, предположительно запущенными вне репозитория, при поиске каталога Git. Затем Git будет учитывать любую конфигурацию в указанном каталоге Git. Пользователи Git Bash, установившие `GIT_PS1_SHOWDIRTYSTATE`, также уязвимы. Пользователи, установившие posh-git, уязвимы просто запустив PowerShell. Пользователи IDE, таких как Visual Studio, уязвимы: простое создание нового проекта уже приведет к чтению и учету конфигурации, указанной в `C:\.git\config`. Пользователи форка Git от Microsoft уязвимы просто запустив Git Bash. Проблема была исправлена в Git for Windows v2.35.2. Пользователи, которые не могут выполнить обновление, могут создать папку `.git` на всех дисках, где выполняются команды Git, и удалить доступ на чтение/запись из этих папок в качестве обходного решения. В качестве альтернативы определите или расширьте `GIT_CEILING_DIRECTORIES`, чтобы охватить _родительский_ каталог профиля пользователя, например, `C:\Users`, если профиль пользователя находится в `C:\Users\my-user-name`.
CVE-2019-19604Возможно произвольное выполнение команд в Git до версий 2.20.2, 2.21.x до 2.21.1, 2.22.x до 2.22.2, 2.23.x до 2.23.1 и 2.24.x до 2.24.1, поскольку операция "git submodule update" может запускать команды, найденные в файле .gitmodules вредоносного репозитория.
CVE-2017-14867Git до версий 2.10.5, 2.11.x до 2.11.4, 2.12.x до 2.12.5, 2.13.x до 2.13.6 и 2.14.x до 2.14.2 использует небезопасные скрипты Perl для поддержки подкоманд, таких как cvsserver, что позволяет злоумышленникам выполнять произвольные команды ОС через метасимволы оболочки в имени модуля. Уязвимый код доступен через git-shell даже без поддержки CVS.
CVE-2014-9938contrib/completion/git-prompt.sh в Git до версии 1.9.3 не очищает имена веток в переменной PS1, что позволяет вредоносному репозиторию вызывать выполнение кода.
CVE-2024-52005Git - это инструмент управления исходным кодом. При клонировании с сервера (или выборке, или отправке) информационные сообщения или сообщения об ошибках передаются из удаленного процесса Git клиенту по так называемому "побочному каналу". Эти сообщения будут начинаться с префикса "remote:" и выводиться непосредственно в стандартный вывод ошибок. Как правило, этот стандартный вывод ошибок подключен к терминалу, который понимает escape-последовательности ANSI, от которых Git не защищен. Большинство современных терминалов поддерживают управляющие последовательности, которые могут использоваться злоумышленником для сокрытия и искажения информации или для введения пользователя в заблуждение с целью выполнения ненадежных скриптов. Как было запрошено в списке рассылки git-security, исправления обсуждаются в общедоступном списке рассылки. Пользователям рекомендуется обновиться как можно скорее. Пользователям, не имеющим возможности обновиться, следует избегать рекурсивных клонов, если только они не из надежных источников.