Gitpython-developers vulnerabilities
We track 32 vulnerabilities in Gitpython-developers products. 32 are rated high or critical, and none are known to be exploited. The most recent was published on October 21, 2026.
Latest Gitpython-developers vulnerabilities
- 7.5 High severity
GitPython: Incorrect Behavior Order
GitPython is a python library used to interact with Git repositories. Prior to 3.2.1, create_submodule() in git/objects/submodule/base.py accepts an attacker-influenced submodule path such as .git/hooks and invokes _clone_repo() before safely rejecting the des
- 7.5 High severity
GitPython: Improper Neutralization of Argument Delimiters in a Command
GitPython before 3.2.0 contains an argument injection vulnerability in Head.checkout() that allows remote attackers to read arbitrary files by supplying a branch name parsed as a git option. Attackers can host a repository whose default branch is named --paths
- 8.1 High severity
GitPython: Improper Neutralization of Argument Delimiters in a Command
GitPython from 3.1.30 before 3.2.0 contains a remote code execution vulnerability in Remote.pull() whose unsafe-option guard inspects only keyword arguments, not the positional refspec. Attackers controlling the refspec can supply --upload-pack=<command> to ex
- 7.5 High severity
GitPython: Improper Validation of Specified Type of Input
GitPython before 3.2.0 contains a remote code execution vulnerability that allows attackers to run commands because Git.ls_remote forwards URLs without check_unsafe_protocols validation. Attackers can supply ext:: remote-helper URLs to execute commands when gi
- 7.5 High severity
GitPython: Inefficient Regular Expression Complexity
GitPython before 3.2.0 contains a regular expression denial of service vulnerability in the _re_actor_epoch pattern used by parse_actor_and_date on author, committer, and tagger lines. Attackers can serve repositories with commit or tag objects containing long
- 7.5 High severity
GitPython: Inefficient Regular Expression Complexity
GitPython before 3.1.60 contains a regular expression denial of service vulnerability in Actor.name_email_regex that processes commit author and committer fields. Attackers can craft a commit object with a malformed author field containing an unterminated angl
- 8.8 High severity
GitPython: Improper Control of Generation of Code
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
- 7.5 High severity
GitPython: Improper Limitation of a Pathname to a Restricted Directory
GitPython before 3.1.59 omits --separate-git-dir from unsafe_git_clone_options, allowing attackers to create arbitrary git directories outside the intended clone destination. Attackers can pass a separate_git_dir parameter to Repo.clone_from() or Repo.clone()
- 9.8 Critical severity
GitPython: Improper Neutralization of Argument Delimiters in a Command
GitPython before 3.1.59 fails to safely re-serialize multi-line git-config values during write operations, corrupting dormant quoted values into injected directives like core.hooksPath. Attackers can craft config files with embedded newlines that become live g
- 7.8 High severity
GitPython: External Control of File Name or Path
GitPython before 3.1.59 fails to disable merge_includes when parsing .gitmodules, allowing attackers to disclose local file content by including arbitrary file paths via [include] directives. Attackers can craft a malicious .gitmodules file with include direct
- 8.2 High severity
GitPython: Improper Limitation of a Pathname to a Restricted Directory
GitPython before 3.1.58 fails to validate submodule names from .gitmodules files, allowing attackers to create Git repositories at arbitrary filesystem paths outside the intended clone directory. Attackers can craft malicious repositories with traversal sequen
- 8.8 High severity
GitPython: Improper Neutralization of Special Elements in Output Used by a Downstream Component
GitPython before 3.1.58 contains a config-name injection vulnerability in the option-name validator that allows attackers to forge arbitrary git-config directives by injecting equals signs, hash symbols, and whitespace into option names. Attackers can inject m
- 8.8 High severity
GitPython: Improper Neutralization of Argument Delimiters in a Command
GitPython before 3.1.58 contains a command execution vulnerability in the check_unsafe_options guard that can be bypassed by combining a single-character kwarg with split_single_char_options=False. Attackers can supply a crafted kwargs dictionary to guarded me
- 8.1 High severity
GitPython: Improper Neutralization of Argument Delimiters in a Command
GitPython versions before 3.1.58 contain an arbitrary file overwrite vulnerability in IndexFile.from_tree, IndexFile.reset, and IndexFile.merge_tree methods that append caller-influenced treeish strings to git read-tree without option validation or argument se
- 8.8 High severity
GitPython: Improper Neutralization of Argument Delimiters in a Command
GitPython before 3.1.58 contains a remote code execution vulnerability in Repo.init that forwards unsafe git options without validation. Attackers can supply a template parameter pointing to a directory with malicious git hooks that execute arbitrary code when
- 8.8 High severity
GitPython: Improper Neutralization of Special Elements used in an OS Command
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,
- 8.1 High severity
GitPython: Improper Neutralization of Argument Delimiters in a Command
GitPython versions before 3.1.54 contain an arbitrary file overwrite vulnerability in the Diffable.diff method that fails to validate git options passed through kwargs. Attackers can supply the --output argument via the other parameter or output kwarg to write
- 8.8 High severity
GitPython: Improper Neutralization of Special Elements used in an OS Command
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 mal
- 7.5 High severity
GitPython: Exposure of Sensitive Information to an Unauthorized Actor
GitPython before 3.1.55 fails to disable environment variable expansion in Remote.create() and Submodule.add() URL handling, allowing attackers to exfiltrate secrets by supplying URLs containing variable references. Attackers can craft URLs with environment va
- 8.1 High severity
GitPython: Improper Limitation of a Pathname to a Restricted Directory
GitPython before 3.1.57 fails to guard git option forwarding in IndexFile.checkout() and TagReference.create(), allowing attackers to pass unsafe options via kwargs. Attackers can use --prefix to overwrite arbitrary files with repository content or -F to read
- 7.3 High severity
GitPython: Improper Neutralization of Special Elements in Output Used by a Downstream Component
GitPython before 3.1.53 fails to properly escape section names in git config files, allowing attackers to inject arbitrary configuration directives through malicious submodule names. Attackers can inject core.sshCommand or other dangerous config keys into the
- 7.8 High severity
GitPython before 3.1.50 fails to validate newline characters in the section parameter of…
GitPython before 3.1.50 fails to validate newline characters in the section parameter of config_writer(), allowing attackers to inject arbitrary section headers into .git/config. Attackers can inject newlines to create a forged [core] section with hooksPath po
- 8.8 High severity
GitPython: Improper Neutralization of Special Elements used in an OS Command
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_
- 9.8 Critical severity
GitPython: Improper Neutralization of Special Elements used in an OS Command
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(..., mult
- 8.4 High severity
GitPython: Improper Neutralization of Special Elements used in a Command
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,
- 7.5 High severity
GitPython: Exposure of Sensitive Information to an Unauthorized Actor
GitPython before 3.1.52 is vulnerable to environment-variable exfiltration in Repo.clone_from(). The caller-supplied remote URL is passed through Git.polish_url(), which on non-Cygwin platforms calls os.path.expandvars() on the URL before invoking git clone. A
- 7.8 High severity
GitPython: Improper Control of Generation of Code
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
- 7.1 High severity
GitPython: Improper Limitation of a Pathname to a Restricted Directory
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.48, a vulnerability in GitPython allows attackers who can supply a crafted reference path to an application using GitPython to write, overwrite, move, or delete files ou
- 9.8 Critical severity
GitPython: Improper Neutralization of Argument Delimiters in a Command
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.47, _clone() validates multi_options as the original list, then executes shlex.split(" ".join(multi_options)). A string like "--branch main --config core.hooksPath=/x" p
- 8.8 High severity
GitPython: Improper Neutralization of Special Elements used in an OS Command
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 rec
- 7.8 High severity
GitPython: Untrusted Search Path
GitPython is a python library used to interact with Git repositories. There is an incomplete fix for CVE-2023-40590. On Windows, GitPython uses an untrusted search path if it uses a shell to run `git`, as well as when it runs `bash.exe` to interpret hooks. If
- 7.8 High severity
GitPython: Untrusted Search Path
GitPython is a python library used to interact with Git repositories. When resolving a program, Python/Windows look for the current working directory, and after that the PATH environment. GitPython defaults to use the `git` command, if a user runs GitPython fr