gitpython
Built from the advisories that name this package: its registry metadata (versions, licence, dependencies) has not been fetched by this service yet.
At a glance
- Ecosystem
- PyPI
- Vulnerability status
- 79 advisory(ies) without a verdict
Advisories (79)
| Advisory | Affected versions | Latest version |
|---|---|---|
| GHSA-239g-whfq-7xj9 GitPython: Repository content can impersonate the git directory, leading to arbitrary code execution | < 3.1.60 | Undetermined |
| GHSA-23mf-xhv8-69c2 GitPython: arbitrary file read via attacker-controlled branch name in `Head.checkout()` (incomplete fix of CVE-2026-78679) | < 3.2.0 | Undetermined |
| GHSA-284h-m62q-gf8w GitPython: Dormant multi-line git-config values are corrupted into live injected directives (e.g. core.hooksPath) on any unrelated GitConfigParser write, enabling RCE | < 3.1.59 | Undetermined |
| GHSA-2f96-g7mh-g2hx GitPython: Command Injection via git long-option prefix abbreviation bypass of CVE-2026-42215 blocklist | < 3.1.51 | Undetermined |
| GHSA-2mqj-m65w-jghx Untrusted search path under some conditions on Windows allows arbitrary code execution | < 3.1.41 | Undetermined |
| GHSA-3f7w-8rr8-f37f GitPython: Unguarded git option forwarding in IndexFile.checkout() and TagReference.create() enables arbitrary file overwrite and arbitrary file read | < 3.1.57 | Undetermined |
| GHSA-3rp5-jjmw-4wv2 GitPython: git-config section-name injection enables arbitrary config directives (core.sshCommand RCE) | < 3.1.53 | Undetermined |
| GHSA-3wxw-xv34-2frg GitPython: TagReference.create positional reference bypasses kwargs-only --file guard, enabling arbitrary file read (incomplete fix of 3af0c251) | < 3.1.59 | Undetermined |
| GHSA-4gmw-gg2m-w46p GitPython: Unguarded git read-tree option forwarding in IndexFile.from_tree/reset/merge_tree enables arbitrary file overwrite | < 3.1.58 | Undetermined |
| GHSA-539m-9xh6-q6rr GitPython: Incomplete unsafe_git_archive_options denylist omits --add-file / --add-virtual-file, enabling arbitrary file read via Repo.archive() | < 3.1.57 | Undetermined |
| GHSA-59cr-6r3x-644w GitPython submodule update path traversal can write outside the repository | < 3.1.62 | Undetermined |
| GHSA-5xxx-qhh7-9287 GitPython: Incomplete unsafe_git_revision_options denylist omits --contents/-S, enabling arbitrary file read via Repo.blame() | < 3.1.59 | Undetermined |
| GHSA-6p8h-3wgx-97gf GitPython: Incomplete unsafe_git_clone_options denylist omits --template enabling arbitrary command execution via clone hooks | < 3.1.54 | Undetermined |
| GHSA-7545-fcxq-7j24 GitPython reference APIs has a path traversal vulnerability that allows arbitrary file write and delete outside the repository | < 3.1.48 | Undetermined |
| GHSA-7833-fr7j-v32q GitPython: Arbitrary local file content disclosure via [include] directive in untrusted .gitmodules (SubmoduleConfigParser never disables merge_includes) | < 3.1.59 | Undetermined |
| GHSA-83vg-56qc-22m7 GitPython validates a submodule's ".git" path only after cloning into it (RCE) | < 3.2.1 | Undetermined |
| GHSA-8mcc-hrx5-hvxc GitPython: clone_from()/clone() omit --separate-git-dir from unsafe_git_clone_options, enabling arbitrary git-directory creation outside the destination | < 3.1.59 | Undetermined |
| GHSA-94p4-4cq8-9g67 GitPython: Environment-variable exfiltration via Repo.create_remote() / Remote.add() URL (incomplete fix of GHSA-rwj8-pgh3-r573) | < 3.1.55 | Undetermined |
| GHSA-956x-8gvw-wg5v GitPython: command injection via unguarded Git options in `Repo.archive()`, `git.ls_remote()`, and arbitrary file overwrite via `Repo.iter_commits()` / `Repo.blame()` | < 3.1.51 | Undetermined |
| GHSA-9rj7-rf2p-w77r GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via --template clone hooks | < 3.1.58 | Undetermined |
| GHSA-cwvm-v4w8-q58c GitPython blind local file inclusion | < 3.1.37 | Undetermined |
| GHSA-f9j4-qggq-h239 GitPython Remote.pull() refspec bypasses the --upload-pack unsafe-option guard, enabling arbitrary command execution | 3.1.30 – < 3.2.0 | Undetermined |
| GHSA-fjr4-x663-mwxc GitPython: Arbitrary file overwrite via git diff --output argument injection in Diffable.diff (key- and value-controlled) | < 3.1.54 | Undetermined |
| GHSA-fx3j-rwgx-fr94 GitPython: separate_git_dir leaks env vars via crafted .gitmodules submodule name | < 3.2.0 | Undetermined |
| GHSA-g5vv-9gxw-82hx GitPython: Denial of Service via catastrophic backtracking (ReDoS) in Actor.name_email_regex — commit author/committer field parsing | < 3.1.60 | Undetermined |
| GHSA-gq48-pqfc-9p58 GitPython: Submodule.move() follows an attacker-committed intermediate symlink outside the worktree | < 3.2.0 | Undetermined |
| GHSA-hcpj-qp55-gfph GitPython vulnerable to Remote Code Execution due to improper user input validation | < 3.1.30 | Undetermined |
| GHSA-hh9p-6wh2-4mfc GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout() | < 3.1.58 | Undetermined |
| GHSA-hmq2-w58f-27jc GitPython: Arbitrary Git Repository Creation Outside the Working Tree via Unvalidated .gitmodules Submodule Name in GitPython | < 3.1.58 | Undetermined |
| GHSA-jm78-9fvv-mhgr GitPython: git-config OPTION-name injection via =/#/whitespace bypasses name validator, enabling forged core.sshCommand/hooksPath (RCE) | < 3.1.58 | Undetermined |
| GHSA-m64x-33q8-m5h7 GitPython parse_actor_and_date() is vulnerable to quadratic backtracking on malformed identity lines | < 3.2.0 | Undetermined |
| GHSA-mv93-w799-cj2w GitPython: Newline injection in config_writer() section parameter bypasses CVE-2026-42215 patch, enabling RCE via core.hooksPath | < 3.1.50 | Undetermined |
| GHSA-p538-c434-8v24 GitPython: Arbitrary file truncation via git rev-list --output argument injection in unguarded Commit.count | < 3.1.56 | Undetermined |
| GHSA-pr76-5cm5-w9cj GitPython vulnerable to remote code execution due to insufficient sanitization of input arguments | < 3.1.32 | Undetermined |
| GHSA-r9mr-m37c-5fr3 GitPython: Unsafe git option guard bypass via single-character kwarg value token smuggling enables arbitrary command execution | < 3.1.54 | Undetermined |
| GHSA-rpm5-65cw-6hj4 GitPython has Command Injection via Git options bypass | 3.1.30 – < 3.1.47 | Undetermined |
| GHSA-rwj8-pgh3-r573 GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL | < 3.1.52 | Undetermined |
| GHSA-v396-v7q4-x2qj GitPython unsafe clone option gate bypass through joined short options | 3.1.50 – < 3.1.51 | Undetermined |
| GHSA-v87r-6q3f-2j67 GitPython: Newline injection in config_writer().set_value() enables RCE via core.hooksPath | < 3.1.49 | Undetermined |
| GHSA-w8jc-g24h-crhw GitPython command wrappers omit unsafe protocol and option checks | < 3.2.0 | Undetermined |
| GHSA-wfm5-v35h-vwf4 GitPython untrusted search path on Windows systems leading to arbitrary code execution | < 3.1.33 | Undetermined |
| GHSA-whh4-5q6c-9v3x GitPython: --no-index bypasses diff unsafe-option protections and enables a blind local-file content oracle | 3.1.59 – < 3.1.60 | Undetermined |
| GHSA-wvpp-8hx9-p66j GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables command execution | < 3.1.58 | Undetermined |
| GHSA-x2qx-6953-8485 GitPython: Unsafe option check validates multi_options before shlex.split transformation | < 3.1.47 | Undetermined |
| PYSEC-2022-42992 All versions of package gitpython are vulnerable to Remote Code Execution (RCE) due to improper user input validation, which makes it possible to inject a malic | < 3.1.30 | Undetermined |
| PYSEC-2023-137 GitPython before 3.1.32 does not block insecure non-multi options in clone and clone_from. NOTE: this issue exists because of an incomplete fix for CVE-2022-244 | < ca965ecc81853bca7675261729143f54e5bf4cdd ; < 3.1.32 | Undetermined |
| PYSEC-2023-161 GitPython is a python library used to interact with Git repositories. When resolving a program, Python/Windows look for the current working directory, and afte | < 3.1.33 | Undetermined |
| PYSEC-2023-165 GitPython is a python library used to interact with Git repositories. In order to resolve some git references, GitPython reads files from the `.git` directory, | < 3.1.35 | Undetermined |
| PYSEC-2024-4 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 sea | < ef3192cc414f2fd9978908454f6fd95243784c7f ; < 3.1.41 | Undetermined |
| PYSEC-2026-2160 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 | 3.1.30 – < 3.1.47 | Undetermined |
| PYSEC-2026-2161 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 execu | < 3.1.47 | Undetermined |
| PYSEC-2026-2162 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 cr | < 3.1.48 | Undetermined |
| PYSEC-2026-2163 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 configparse | < 3.1.49 | Undetermined |
| PYSEC-2026-3783 GitPython before 3.1.58 contains a config-name injection vulnerability in the option-name validator that allows attackers to forge arbitrary git-config directiv | < 3.1.58 | Undetermined |
| PYSEC-2026-3784 GitPython before 3.1.58 fails to validate submodule names from .gitmodules files, allowing attackers to create Git repositories at arbitrary filesystem paths ou | < 3.1.58 | Undetermined |
| PYSEC-2026-3785 GitPython before 3.1.59 fails to disable merge_includes when parsing .gitmodules, allowing attackers to disclose local file content by including arbitrary file | < 3.1.59 | Undetermined |
| PYSEC-2026-3786 GitPython before 3.1.59 fails to safely re-serialize multi-line git-config values during write operations, corrupting dormant quoted values into injected direct | < 3.1.59 | Undetermined |
| PYSEC-2026-3787 GitPython before 3.1.59 omits --separate-git-dir from unsafe_git_clone_options, allowing attackers to create arbitrary git directories outside the intended clon | < 3.1.59 | Undetermined |
| PYSEC-2026-3788 GitPython versions before 3.1.59 contain an incomplete denylist in the unsafe_git_revision_options guard that omits --contents and -S options, allowing attacker | < 3.1.59 | Undetermined |
| PYSEC-2026-3836 GitPython: Command Injection via git long-option prefix abbreviation bypass of CVE-2026-42215 blocklist | < 3.1.51 | Undetermined |
| PYSEC-2026-3837 GitPython: TagReference.create positional reference bypasses kwargs-only --file guard, enabling arbitrary file read (incomplete fix of 3af0c251) | < 3.1.59 | Undetermined |
| PYSEC-2026-3838 GitPython: Unguarded git read-tree option forwarding in IndexFile.from_tree/reset/merge_tree enables arbitrary file overwrite | < 3.1.58 | Undetermined |
| PYSEC-2026-3839 GitPython: command injection via unguarded Git options in `Repo.archive()`, `git.ls_remote()`, and arbitrary file overwrite via `Repo.iter_commits()` / `Repo.blame()` | < 3.1.51 | Undetermined |
| PYSEC-2026-3840 GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via --template clone hooks | < 3.1.58 | Undetermined |
| PYSEC-2026-3841 GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout() | < 3.1.58 | Undetermined |
| PYSEC-2026-3842 GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL | < 3.1.52 | Undetermined |
| PYSEC-2026-3843 GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables command execution | < 3.1.58 | Undetermined |
| PYSEC-2026-3947 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-opti | 3.1.50 – < 3.1.51 | Undetermined |
| PYSEC-2026-3948 GitPython before 3.1.57 contains an incomplete denylist in the unsafe_git_archive_options guard that omits --add-file and --add-virtual-file options. Attackers | < 3.1.57 | Undetermined |
| PYSEC-2026-3949 GitPython before 3.1.57 fails to guard git option forwarding in IndexFile.checkout() and TagReference.create(), allowing attackers to pass unsafe options via kw | < 3.1.57 | Undetermined |
| PYSEC-2026-3950 GitPython before 3.1.56 contains an argument injection vulnerability in the Commit.count() method, which forwards keyword arguments to 'git rev-list' without th | < 3.1.56 | Undetermined |
| PYSEC-2026-3951 GitPython before 3.1.55 fails to disable environment variable expansion in Remote.create() and Submodule.add() URL handling, allowing attackers to exfiltrate se | < 3.1.55 | Undetermined |
| PYSEC-2026-3952 GitPython before 3.1.54 contains an incomplete denylist in unsafe_git_clone_options that omits --template, allowing attackers to achieve arbitrary command execu | < 3.1.54 | Undetermined |
| PYSEC-2026-3953 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 i | < 3.1.54 | Undetermined |
| PYSEC-2026-3980 GitPython before 3.1.50 fails to validate newline characters in the section parameter of config_writer(), allowing attackers to inject arbitrary section headers | < 3.1.50 | Undetermined |
| PYSEC-2026-3981 GitPython before 3.1.53 fails to properly escape section names in git config files, allowing attackers to inject arbitrary configuration directives through mali | < 3.1.53 | Undetermined |
| PYSEC-2026-3982 GitPython before 3.1.60 fails to properly validate the git directory location, allowing attackers to impersonate the git directory using tracked files like gitd | < 3.1.60 | Undetermined |
| PYSEC-2026-3984 GitPython before 3.1.60 contains a regular expression denial of service vulnerability in Actor.name_email_regex that processes commit author and committer field | < 3.1.60 | Undetermined |
| PYSEC-2026-3995 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 | < 3.1.54 | Undetermined |
Withdrawn advisories (19)
Withdrawn by their publisher: they affect no version and are not counted above.
- GHSA-298h-jpq4-m665 Duplicate Advisory: GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via --template clone hooks · withdrawn
- GHSA-2pxq-5vcg-rq29 Duplicate Advisory: Repository content can impersonate the git directory, leading to arbitrary code execution · withdrawn
- GHSA-3vrx-526r-64rm Duplicate Advisory: GitPython: Arbitrary Git Repository Creation Outside the Working Tree via Unvalidated .gitmodules Submodule Name in GitPython · withdrawn
- GHSA-4vpg-pfj8-m33q Duplicate Advisory: GitPython: command injection via unguarded Git options in `Repo.archive()`, `git.ls_remote()`, and arbitrary file overwrite via `Repo.iter_commits()` / `Repo.blame()` · withdrawn
- GHSA-6r2r-ww24-7h52 Duplicate Advisory: GitPython: Command Injection via git long-option prefix abbreviation bypass of CVE-2026-42215 blocklist · withdrawn
- GHSA-6rj2-96f5-chj9 Duplicate Advisory: GitPython: TagReference.create positional reference bypasses kwargs-only --file guard, enabling arbitrary file read (incomplete fix of 3af0c251) · withdrawn
- GHSA-7jx3-jqcp-hhgc Duplicate Advisory: GitPython: Unguarded git read-tree option forwarding in IndexFile.from_tree/reset/merge_tree enables arbitrary file overwrite · withdrawn
- GHSA-7r39-6q8m-qw68 Duplicate Advisory: clone_from()/clone() omit --separate-git-dir from unsafe_git_clone_options, enabling arbitrary git-directory creation outside the destination · withdrawn
- GHSA-89ff-m8wv-p99r Duplicate Advisory: GitPython: Incomplete unsafe_git_revision_options denylist omits --contents/-S, enabling arbitrary file read via Repo.blame() · withdrawn
- GHSA-9557-234j-7rv9 Duplicate Advisory: Dormant multi-line git-config values are corrupted into live injected directives (e.g. core.hooksPath) on any unrelated GitConfigParser write, enabling RCE · withdrawn
- GHSA-9xx9-hw38-h2w9 Duplicate Advisory: GitPython: git-config section-name injection enables arbitrary config directives (core.sshCommand RCE) · withdrawn
- GHSA-crmc-f4m7-33fj Duplicate Advisory: Arbitrary local file content disclosure via [include] directive in untrusted .gitmodules (SubmoduleConfigParser never disables merge_includes) · withdrawn
- GHSA-cw2r-r7mw-j3hc Duplicate Advisory: GitPython unsafe clone option gate bypass through joined short options · withdrawn
- GHSA-m4f3-g4cq-hqrx Duplicate Advisory: GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL · withdrawn
- GHSA-qpf5-3wfw-fh7q Duplicate Advisory: Denial of Service via catastrophic backtracking (ReDoS) in Actor.name_email_regex — commit author/committer field parsing · withdrawn
- GHSA-rw58-wc66-99g4 Duplicate Advisory: GitPython 3.1.59: --no-index bypasses diff unsafe-option protections and enables a blind local-file content oracle · withdrawn
- GHSA-w672-239g-c3gr Duplicate Advisory: GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout() · withdrawn
- GHSA-wv46-xpj8-pw53 Duplicate Advisory: GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables command execution · withdrawn
- PYSEC-2026-3983 GitPython 3.1.59 fails to restrict the --no-index option in the high-level diff API, allowing attackers to read arbitrary filesystem paths as repository operand · withdrawn
Sources
| Source | Licence |
|---|