CVE-20XX-?

Gitpython Project Gitpython CVEs.

Published CVEs affecting Gitpython Project Gitpython, ranked by exploit odds.

8 CVEs · updated 2026-11-06 03:49 UTC

Reset all
  1. CVE-2026-67325

    GitPython before 3.1.51 contains an incomplete command injection blocklist that fails to account for git's long-option prefix abbreviation feature. Attackers can bypass the unsafe options guard by using abbreviated option names like upload_p instead of upload_pack, which git resolves to dangerous options and executes arbitrary commands.

    Injection Gitpython Project Gitpython

    8.7 HIGH 2% exploit odds Fix listed
  2. CVE-2026-67323

    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.

    Injection Gitpython Project Gitpython

    8.6 HIGH 1% exploit odds Fix listed
  3. CVE-2026-73623

    GitPython before 3.1.54 contains an incomplete denylist in unsafe_git_clone_options that omits --template, allowing attackers to achieve arbitrary command execution during clone operations. Attackers can supply --template pointing to a directory containing malicious post-checkout hooks that execute when git clones the repository.

    Injection Gitpython Project Gitpython

    7.7 HIGH 1.0% exploit odds Fix listed
  4. CVE-2026-42215

    GitPython is a python library used to interact with Git repositories. From version 3.1.30 to before version 3.1.47, GitPython blocks dangerous Git options such as --upload-pack and --receive-pack by default, but the equivalent Python kwargs upload_pack and receive_pack bypass that check. If an application passes attacker-controlled kwargs into Repo.clone_from(), Remote.fetch(), Remote.pull(), or Remote.push(), this leads to arbitrary command execution even when allow_unsafe_options is left at its default value of False. This issue has been patched in version 3.1.47.

    Injection Library Gitpython Project Gitpython

    8.8 HIGH 0.7% exploit odds Fix listed
  5. CVE-2026-73625

    GitPython versions before 3.1.54 contain a remote code execution vulnerability in the check_unsafe_options guard that can be bypassed by smuggling git options inside single-character kwarg values. Attackers can supply crafted option dictionaries to clone_from, fetch, pull, push, ls_remote, iter_commits, blame, or archive methods to execute arbitrary OS commands via the --upload-pack parameter.

    Injection Gitpython Project Gitpython

    8.7 HIGH 0.7% exploit odds Fix listed
  6. CVE-2026-67324

    GitPython 3.1.50 fails to recognize joined short-option forms such as -u<value> (the short form of --upload-pack=<value>) when enforcing its default unsafe-option gate. When an application passes attacker-influenced clone options into Repo.clone_from(..., multi_options=..., allow_unsafe_options=False), an attacker can supply -u<helper> to bypass the gate that blocks --upload-pack/-u, causing Git to execute the specified helper command during clone. Fixed in 3.1.51.

    Injection Gitpython Project Gitpython

    9.3 CRITICAL 0.5% exploit odds Fix listed
  7. CVE-2026-87817

    GitPython before 3.1.60 fails to properly validate the git directory location, allowing attackers to impersonate the git directory using tracked files like gitdir, commondir, and HEAD. Attackers can execute arbitrary code by placing a malicious pre-commit hook in the tracked hooks directory that executes when a victim calls index.commit() on a cloned or opened repository.

    Injection Gitpython Project Gitpython

    8.7 HIGH 0.4% exploit odds Fix listed
  8. CVE-2026-44244

    GitPython is a python library used to interact with Git repositories. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.

    Injection Device Gitpython Project Gitpython

    7.8 HIGH 0.2% exploit odds Fix listed

All CVEs affecting Gitpython Project Gitpython that appear in CVE.org and NVD, sorted by how likely they are to be exploited (EPSS), with fix status and timeline.