nvd,anchore_overrides
Git-scm
Уязвимости
48
Эксплуатируемые
1
Критический
6
Высокий
27
Топ продуктов
Топ уязвимостей
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-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-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-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-41953Git GUI - это удобный графический инструмент, который поставляется вместе с Git для Windows. Его целевая аудитория - пользователи, которым неудобно использовать Git в командной строке. Git GUI имеет функцию клонирования репозиториев. Сразу после того, как локальный клон станет доступен, Git GUI автоматически выполнит его постобработку, в частности, запустив программу проверки орфографии `aspell.exe`, если она была найдена. Git GUI реализован как скрипт Tcl/Tk. Из-за неудачной конструкции Tcl в Windows путь поиска при поиске исполняемого файла _всегда включает текущий каталог_. Поэтому вредоносные репозитории могут поставляться с `aspell.exe` в каталоге верхнего уровня, который выполняется Git GUI, не давая пользователю возможности сначала проверить его, то есть запустить ненадежный код. Эта проблема была решена в версии 2.39.1. Пользователям рекомендуется обновиться. Пользователям, которые не могут обновиться, следует избегать использования Git GUI для клонирования. Если это не является жизнеспособным вариантом, по крайней мере, избегайте клонирования из ненадежных источников.
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, исправления обсуждаются в общедоступном списке рассылки. Пользователям рекомендуется обновиться как можно скорее. Пользователям, не имеющим возможности обновиться, следует избегать рекурсивных клонов, если только они не из надежных источников.
CVE-2023-25652Git - это система управления версиями. До версий 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 apply --reject`, путь вне рабочей ветки может быть перезаписан частично контролируемым содержимым (соответствующим отклоненным блокам из данного патча). Исправление доступно в версиях 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 apply` с `--reject`, когда применяете патчи из недоверенного источника. Используйте `git apply --stat` для проверки патча перед применением; избегайте применения того, который создает конфликт, где существует ссылка на файл `*.rej`.
CVE-2023-23946Git, система контроля версий, уязвима для обхода по пути до версий 2.39.2, 2.38.4, 2.37.6, 2.36.5, 2.35.7, 2.34.7, 2.33.7, 2.32.6, 2.31.7 и 2.30.8. Путем подачи специально сформированного ввода в `git apply` можно перезаписать путь вне рабочей директории от имени пользователя, выполняющего `git apply`. Исправление было подготовлено и появится в версиях v2.39.2, v2.38.4, v2.37.6, v2.36.5, v2.35.7, v2.34.7, v2.33.7, v2.32.6, v2.31.7 и v2.30.8. В качестве обходного решения используйте `git apply --stat`, чтобы проверить патч перед применением; избегайте применения патча, который создает символическую ссылку и затем создает файл за пределами символической ссылки.
CVE-2022-24975В документации --mirror для Git до версии 2.35.1 не упоминается доступность удаленного контента, также известного как проблема "GitBleed". Это может представлять угрозу безопасности, если процессы аудита раскрытия информации полагаются на операцию клонирования без параметра --mirror. Примечание: это было оспорено несколькими третьими сторонами, которые считают, что это предполагаемая функция двоичного файла git и не представляет угрозы безопасности.
CVE-2021-40330git_connect_git в connect.c в Git до версии 2.30.1 позволяет пути к репозиторию содержать символ новой строки, что может привести к неожиданным межпротокольным запросам, как показано в подстроке git://localhost:1234/%0d%0a%0d%0aGET%20/%20HTTP/1.1.
CVE-2021-21300Git — это распределенная система управления версиями с открытым исходным кодом. В уязвимых версиях Git специально созданный репозиторий, содержащий символические ссылки, а также файлы, использующие фильтр очистки/размытия, такой как Git LFS, может привести к выполнению только что извлеченного сценария при клонировании в файловую систему, нечувствительную к регистру, такую как NTFS, HFS+ или APFS (т. е. файловые системы по умолчанию в Windows и macOS). Обратите внимание, что для этого должны быть настроены фильтры очистки/размытия. Git для Windows настраивает Git LFS по умолчанию и поэтому уязвим. Проблема была исправлена в версиях, опубликованных во вторник, 9 марта 2021 года. В качестве обходного пути, если поддержка символических ссылок отключена в Git (например, с помощью `git config --global core.symlinks false`), описанная атака не сработает. Аналогично, если никакие фильтры очистки/размытия, такие как Git LFS, не настроены глобально (т. е. _до_ клонирования), атака будет сорвана. Как всегда, лучше избегать клонирования репозиториев из ненадежных источников. Самая ранняя версия, подверженная влиянию, — 2.14.2. Исправленные версии: 2.30.1, 2.29.3, 2.28.1, 2.27.1, 2.26.3, 2.25.5, 2.24.4, 2.23.4, 2.22.5, 2.21.4, 2.20.5, 2.19.6, 2.18.5, 2.17.62.17.6.