GitPython до версии 3.1.51 не защищает от опасных параметров Git, передаваемых в качестве аргументов ключевых слов в Repo.archive() и git.ls_remote(), что позволяет внедрять команды с помощью таких параметров, как --exec/--upload-pack (что приводит к выполнению произвольной команды). Кроме того, Repo.iter_commits() и Repo.blame() не проверяют аргументы версии, указанные в начальном дефисе, поэтому такая версия, как --output=<path>, может привести к тому, что Git откроет и обрежет произвольный файл. Для эксплуатации требуется приложение, которое передает этим методам аргументы, контролируемые злоумышленником.
Показать оригинальное описание (EN)
GitPython before 3.1.51 fails to guard against dangerous Git options passed as keyword arguments in Repo.archive() and git.ls_remote(), allowing command injection via options such as --exec/--upload-pack (leading to arbitrary command execution). Additionally, Repo.iter_commits() and Repo.blame() do not check for leading-dash revision arguments, so a revision like --output=<path> can cause Git to open and truncate an arbitrary file. Exploitation requires an application that passes attacker-controlled arguments to these methods.
Характеристики атаки
Последствия
Строка CVSS v4.0