CVE-2022-41903 in Git
Сводка
по VulDB • 06.06.2026
Git — это распределенная система контроля версий. Команда `git log` может отображать коммиты в произвольном формате с использованием спецификаторов `--format`. Эта функциональность также доступна в `git archive` через атрибут git `export-subst`. При обработке операторов заполнения (padding) в функции `pretty.c::format_and_pad_commit()` возникает переполнение целочисленного типа (integer overflow), при котором значение типа `size_t` некорректно сохраняется как `int`, а затем используется в качестве смещения для вызова `memcpy()`. Это переполнение может быть вызвано напрямую пользователем, выполняющим команду, которая задействует механизм форматирования коммитов (например, `git log --format=...`). Оно также может быть вызвано косвенно через `git archive` с использованием механизма `export-subst`, который расширяет спецификаторы формата внутри файлов в репозитории во время создания архива. Это переполнение целочисленного типа может привести к произвольной записи в кучу (heap), что, в свою очередь, может привести к выполнению произвольного кода. Проблема исправлена в версиях, опубликованных 17 января 2023 года, начиная с v2.30.7. Пользователям рекомендуется обновиться. Пользователи, которые не могут обновиться, должны отключить `git archive` в недоверенных репозиториях. Если вы предоставляете доступ к `git archive` через `git daemon`, отключите его, выполнив команду `git config --global daemon.uploadArch false`.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.