Skip to content

gitpython (PyPI)

Advisories
98
Latest version
—
License
—
OpenSSF Scorecard
—

How to fix

Upgrading to 3.2.1 or later clears every advisory below that has a fix.

Upgrade commands
pip
pip install --upgrade "gitpython>=3.2.1"
poetry
poetry add "gitpython>=3.2.1"
uv
uv add "gitpython>=3.2.1"

Known vulnerabilities

AdvisorySeverityAffectedFixed in
GHSA-83vg-56qc-22m7
GitPython validates a submodule's ".git" path only after cloning into it (RCE)
High
EPSS 0.42%
< 3.2.1
3.2.1
GHSA-gq48-pqfc-9p58
GitPython: Submodule.move() follows an attacker-committed intermediate symlink outside the worktree
Medium
EPSS 0.19%
< 3.2.0
3.2.0
GHSA-23mf-xhv8-69c2
GitPython: arbitrary file read via attacker-controlled branch name in `Head.checkout()` (incomplete fix of CVE-2026-78679)
High
EPSS 0.39%
< 3.2.0
3.2.0
GHSA-f9j4-qggq-h239
GitPython Remote.pull() refspec bypasses the --upload-pack unsafe-option guard, enabling arbitrary command execution
Critical
EPSS 0.46%
>= 3.1.30, < 3.2.0
3.2.0
GHSA-w8jc-g24h-crhw
GitPython command wrappers omit unsafe protocol and option checks
High
EPSS 0.42%
< 3.2.0
3.2.0
GHSA-m64x-33q8-m5h7
GitPython parse_actor_and_date() is vulnerable to quadratic backtracking on malformed identity lines
High
EPSS 0.34%
< 3.2.0
3.2.0
GHSA-fx3j-rwgx-fr94
GitPython: separate_git_dir leaks env vars via crafted .gitmodules submodule name
High
EPSS 0.29%
< 3.2.0
3.2.0
GHSA-59cr-6r3x-644w
GitPython submodule update path traversal can write outside the repository
Medium
EPSS 0.40%
< 3.1.62
3.1.62
GHSA-qpf5-3wfw-fh7q
Duplicate Advisory: Denial of Service via catastrophic backtracking (ReDoS) in Actor.name_email_regex — commit author/committer field parsing
Withdrawn
High
<= 3.1.59
No fix yet
GHSA-2pxq-5vcg-rq29
Duplicate Advisory: Repository content can impersonate the git directory, leading to arbitrary code execution
Withdrawn
High
<= 3.1.59
No fix yet
GHSA-g5vv-9gxw-82hx
GitPython: Denial of Service via catastrophic backtracking (ReDoS) in Actor.name_email_regex — commit author/committer field parsing
High
EPSS 0.52%
< 3.1.60
3.1.60
GHSA-g5vv-9gxw-82hx
GitPython: Denial of Service via catastrophic backtracking (ReDoS) in Actor.name_email_regex — commit author/committer field parsing
High
EPSS 0.52%
< 3.1.60
3.1.60
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
Medium
EPSS 0.41%
>= 3.1.59, < 3.1.60
3.1.60
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
Medium
EPSS 0.41%
>= 3.1.59
No fix yet
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
Medium
EPSS 0.41%
>= 3.1.59, < 3.1.60
3.1.60
GHSA-239g-whfq-7xj9
GitPython: Repository content can impersonate the git directory, leading to arbitrary code execution
High
EPSS 0.42%
< 3.1.60
3.1.60
GHSA-239g-whfq-7xj9
GitPython: Repository content can impersonate the git directory, leading to arbitrary code execution
High
EPSS 0.42%
< 3.1.60
3.1.60
GHSA-89ff-m8wv-p99r
Duplicate Advisory: GitPython: Incomplete unsafe_git_revision_options denylist omits --contents/-S, enabling arbitrary file read via Repo.blame()
Withdrawn
Medium
<= 3.1.58
No fix yet
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
Medium
<= 3.1.58
No fix yet
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
High
<= 3.1.58
No fix yet
GHSA-crmc-f4m7-33fj
Duplicate Advisory: Arbitrary local file content disclosure via [include] directive in untrusted .gitmodules (SubmoduleConfigParser never disables merge_includes)
Withdrawn
High
<= 3.1.58
No fix yet
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
Critical
<= 3.1.58
No fix yet
GHSA-3wxw-xv34-2frg
GitPython: TagReference.create positional reference bypasses kwargs-only --file guard, enabling arbitrary file read (incomplete fix of 3af0c251)
High
EPSS 0.32%
< 3.1.59
3.1.59
GHSA-3wxw-xv34-2frg
GitPython: TagReference.create positional reference bypasses kwargs-only --file guard, enabling arbitrary file read (incomplete fix of 3af0c251)
High
EPSS 0.32%
< 3.1.59
3.1.59
GHSA-5xxx-qhh7-9287
GitPython: Incomplete unsafe_git_revision_options denylist omits --contents/-S, enabling arbitrary file read via Repo.blame()
Medium
EPSS 0.41%
< 3.1.59
3.1.59
GHSA-5xxx-qhh7-9287
GitPython: Incomplete unsafe_git_revision_options denylist omits --contents/-S, enabling arbitrary file read via Repo.blame()
Medium
EPSS 0.41%
< 3.1.59
3.1.59
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
High
EPSS 0.65%
< 3.1.59
3.1.59
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
High
EPSS 0.65%
< 3.1.59
3.1.59
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
Critical
EPSS 0.56%
< 3.1.59
3.1.59
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
Critical
EPSS 0.56%
< 3.1.59
3.1.59
GHSA-7833-fr7j-v32q
GitPython: Arbitrary local file content disclosure via [include] directive in untrusted .gitmodules (SubmoduleConfigParser never disables merge_includes)
High
EPSS 0.18%
< 3.1.59
3.1.59
GHSA-7833-fr7j-v32q
GitPython: Arbitrary local file content disclosure via [include] directive in untrusted .gitmodules (SubmoduleConfigParser never disables merge_includes)
High
EPSS 0.18%
< 3.1.59
3.1.59
GHSA-w672-239g-c3gr
Duplicate Advisory: GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout()
Withdrawn
Medium
<= 3.1.57
No fix yet
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
High
<= 3.1.57
No fix yet
GHSA-298h-jpq4-m665
Duplicate Advisory: GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via --template clone hooks
Withdrawn
High
<= 3.1.57
No fix yet
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
High
<= 3.1.57
No fix yet
GHSA-3vrx-526r-64rm
Duplicate Advisory: GitPython: Arbitrary Git Repository Creation Outside the Working Tree via Unvalidated .gitmodules Submodule Name in GitPython
Withdrawn
High
<= 3.1.57
No fix yet
GHSA-wvpp-8hx9-p66j
GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables command execution
High
EPSS 0.59%
< 3.1.58
3.1.58
GHSA-wvpp-8hx9-p66j
GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables command execution
High
EPSS 0.59%
< 3.1.58
3.1.58
GHSA-jm78-9fvv-mhgr
GitPython: git-config OPTION-name injection via =/#/whitespace bypasses name validator, enabling forged core.sshCommand/hooksPath (RCE)
High
EPSS 0.48%
< 3.1.58
3.1.58
GHSA-jm78-9fvv-mhgr
GitPython: git-config OPTION-name injection via =/#/whitespace bypasses name validator, enabling forged core.sshCommand/hooksPath (RCE)
High
EPSS 0.48%
< 3.1.58
3.1.58
GHSA-hmq2-w58f-27jc
GitPython: Arbitrary Git Repository Creation Outside the Working Tree via Unvalidated .gitmodules Submodule Name in GitPython
High
EPSS 0.42%
< 3.1.58
3.1.58
GHSA-hmq2-w58f-27jc
GitPython: Arbitrary Git Repository Creation Outside the Working Tree via Unvalidated .gitmodules Submodule Name in GitPython
High
EPSS 0.42%
< 3.1.58
3.1.58
GHSA-hh9p-6wh2-4mfc
GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout()
High
EPSS 0.41%
< 3.1.58
3.1.58
GHSA-hh9p-6wh2-4mfc
GitPython: Arbitrary file read via --pathspec-from-file in IndexFile.remove() and Head.checkout()
High
EPSS 0.41%
< 3.1.58
3.1.58
GHSA-9rj7-rf2p-w77r
GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via --template clone hooks
High
EPSS 0.72%
< 3.1.58
3.1.58
GHSA-9rj7-rf2p-w77r
GitPython: Unguarded git option forwarding in Repo.init enables arbitrary command execution via --template clone hooks
High
EPSS 0.72%
< 3.1.58
3.1.58
GHSA-4gmw-gg2m-w46p
GitPython: Unguarded git read-tree option forwarding in IndexFile.from_tree/reset/merge_tree enables arbitrary file overwrite
High
EPSS 0.54%
< 3.1.58
3.1.58
GHSA-4gmw-gg2m-w46p
GitPython: Unguarded git read-tree option forwarding in IndexFile.from_tree/reset/merge_tree enables arbitrary file overwrite
High
EPSS 0.54%
< 3.1.58
3.1.58
GHSA-p538-c434-8v24
GitPython: Arbitrary file truncation via git rev-list --output argument injection in unguarded Commit.count
Medium
EPSS 0.36%
< 3.1.56
3.1.56
GHSA-p538-c434-8v24
GitPython: Arbitrary file truncation via git rev-list --output argument injection in unguarded Commit.count
Medium
EPSS 0.36%
< 3.1.56
3.1.56
GHSA-539m-9xh6-q6rr
GitPython: Incomplete unsafe_git_archive_options denylist omits --add-file / --add-virtual-file, enabling arbitrary file read via Repo.archive()
Medium
EPSS 0.41%
< 3.1.57
3.1.57
GHSA-539m-9xh6-q6rr
GitPython: Incomplete unsafe_git_archive_options denylist omits --add-file / --add-virtual-file, enabling arbitrary file read via Repo.archive()
Medium
EPSS 0.41%
< 3.1.57
3.1.57
GHSA-3f7w-8rr8-f37f
GitPython: Unguarded git option forwarding in IndexFile.checkout() and TagReference.create() enables arbitrary file overwrite and arbitrary file read
High
EPSS 0.57%
< 3.1.57
3.1.57
GHSA-3f7w-8rr8-f37f
GitPython: Unguarded git option forwarding in IndexFile.checkout() and TagReference.create() enables arbitrary file overwrite and arbitrary file read
High
EPSS 0.57%
< 3.1.57
3.1.57
GHSA-9xx9-hw38-h2w9
Duplicate Advisory: GitPython: git-config section-name injection enables arbitrary config directives (core.sshCommand RCE)
Withdrawn
High
< 3.1.53
3.1.53
GHSA-6r2r-ww24-7h52
Duplicate Advisory: GitPython: Command Injection via git long-option prefix abbreviation bypass of CVE-2026-42215 blocklist
Withdrawn
High
<= 3.1.50
No fix yet
GHSA-m4f3-g4cq-hqrx
Duplicate Advisory: GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
Withdrawn
High
<= 3.1.51
No fix yet
GHSA-cw2r-r7mw-j3hc
Duplicate Advisory: GitPython unsafe clone option gate bypass through joined short options
Withdrawn
Critical No fix yet
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
High
<= 3.1.50
No fix yet
GHSA-94p4-4cq8-9g67
GitPython: Environment-variable exfiltration via Repo.create_remote() / Remote.add() URL (incomplete fix of GHSA-rwj8-pgh3-r573)
High
EPSS 0.51%
< 3.1.55
3.1.55
GHSA-94p4-4cq8-9g67
GitPython: Environment-variable exfiltration via Repo.create_remote() / Remote.add() URL (incomplete fix of GHSA-rwj8-pgh3-r573)
High
EPSS 0.51%
< 3.1.55
3.1.55
GHSA-r9mr-m37c-5fr3
GitPython: Unsafe git option guard bypass via single-character kwarg value token smuggling enables arbitrary command execution
High
EPSS 0.68%
< 3.1.54
3.1.54
GHSA-r9mr-m37c-5fr3
GitPython: Unsafe git option guard bypass via single-character kwarg value token smuggling enables arbitrary command execution
High
EPSS 0.68%
< 3.1.54
3.1.54
GHSA-6p8h-3wgx-97gf
GitPython: Incomplete unsafe_git_clone_options denylist omits --template enabling arbitrary command execution via clone hooks
High
EPSS 0.96%
< 3.1.54
3.1.54
GHSA-6p8h-3wgx-97gf
GitPython: Incomplete unsafe_git_clone_options denylist omits --template enabling arbitrary command execution via clone hooks
High
EPSS 0.96%
< 3.1.54
3.1.54
GHSA-fjr4-x663-mwxc
GitPython: Arbitrary file overwrite via git diff --output argument injection in Diffable.diff (key- and value-controlled)
High
EPSS 0.55%
< 3.1.54
3.1.54
GHSA-fjr4-x663-mwxc
GitPython: Arbitrary file overwrite via git diff --output argument injection in Diffable.diff (key- and value-controlled)
High
EPSS 0.55%
< 3.1.54
3.1.54
GHSA-3rp5-jjmw-4wv2
GitPython: git-config section-name injection enables arbitrary config directives (core.sshCommand RCE)
High
EPSS 0.27%
< 3.1.53
3.1.53
GHSA-3rp5-jjmw-4wv2
GitPython: git-config section-name injection enables arbitrary config directives (core.sshCommand RCE)
High
EPSS 0.27%
< 3.1.53
3.1.53
GHSA-rwj8-pgh3-r573
GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
High
EPSS 0.33%
< 3.1.52
3.1.52
GHSA-rwj8-pgh3-r573
GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
High
EPSS 0.33%
< 3.1.52
3.1.52
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()`
High
EPSS 1.25%
< 3.1.51
3.1.51
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()`
High
EPSS 1.25%
< 3.1.51
3.1.51
GHSA-2f96-g7mh-g2hx
GitPython: Command Injection via git long-option prefix abbreviation bypass of CVE-2026-42215 blocklist
High
EPSS 2.21%
< 3.1.51
3.1.51
GHSA-2f96-g7mh-g2hx
GitPython: Command Injection via git long-option prefix abbreviation bypass of CVE-2026-42215 blocklist
High
EPSS 2.21%
< 3.1.51
3.1.51
GHSA-v396-v7q4-x2qj
GitPython unsafe clone option gate bypass through joined short options
Critical
EPSS 0.45%
>= 3.1.50, < 3.1.51
3.1.51
GHSA-v396-v7q4-x2qj
GitPython unsafe clone option gate bypass through joined short options
Critical
EPSS 0.45%
>= 3.1.50, < 3.1.51
3.1.51
GHSA-mv93-w799-cj2w
GitPython: Newline injection in config_writer() section parameter bypasses CVE-2026-42215 patch, enabling RCE via core.hooksPath
High
EPSS 0.25%
< 3.1.50
3.1.50
GHSA-mv93-w799-cj2w
GitPython: Newline injection in config_writer() section parameter bypasses CVE-2026-42215 patch, enabling RCE via core.hooksPath
High
EPSS 0.25%
< 3.1.50
3.1.50
GHSA-v87r-6q3f-2j67
GitPython: Newline injection in config_writer().set_value() enables RCE via core.hooksPath
High
EPSS 0.24%
< 3.1.49
3.1.49
GHSA-v87r-6q3f-2j67
GitPython: Newline injection in config_writer().set_value() enables RCE via core.hooksPath
High
EPSS 0.24%
< 3.1.49
3.1.49
GHSA-7545-fcxq-7j24
GitPython reference APIs has a path traversal vulnerability that allows arbitrary file write and delete outside the repository
High
EPSS 0.42%
< 3.1.48
3.1.48
GHSA-7545-fcxq-7j24
GitPython reference APIs has a path traversal vulnerability that allows arbitrary file write and delete outside the repository
High
EPSS 0.42%
< 3.1.48
3.1.48
GHSA-rpm5-65cw-6hj4
GitPython has Command Injection via Git options bypass
High
EPSS 0.75%
>= 3.1.30, < 3.1.47
3.1.47
GHSA-rpm5-65cw-6hj4
GitPython has Command Injection via Git options bypass
High
EPSS 0.75%
>= 3.1.30, < 3.1.47
3.1.47
GHSA-x2qx-6953-8485
GitPython: Unsafe option check validates multi_options before shlex.split transformation
Critical
EPSS 0.57%
< 3.1.47
3.1.47
GHSA-x2qx-6953-8485
GitPython: Unsafe option check validates multi_options before shlex.split transformation
Critical
EPSS 0.57%
< 3.1.47
3.1.47
GHSA-2mqj-m65w-jghx
Untrusted search path under some conditions on Windows allows arbitrary code execution
High
EPSS 0.32%
< 3.1.41
3.1.41
GHSA-2mqj-m65w-jghx
Untrusted search path under some conditions on Windows allows arbitrary code execution
High
EPSS 0.32%
< 3.1.41
3.1.41
GHSA-cwvm-v4w8-q58c
GitPython blind local file inclusion
Medium
EPSS 1.09%
< 3.1.37
3.1.37
GHSA-cwvm-v4w8-q58c
GitPython blind local file inclusion
Medium
EPSS 1.09%
< 3.1.35
3.1.35
GHSA-wfm5-v35h-vwf4
GitPython untrusted search path on Windows systems leading to arbitrary code execution
High
EPSS 0.51%
< 3.1.33
3.1.33
GHSA-wfm5-v35h-vwf4
GitPython untrusted search path on Windows systems leading to arbitrary code execution
High
EPSS 0.51%
< 3.1.33
3.1.33
GHSA-pr76-5cm5-w9cj
GitPython vulnerable to remote code execution due to insufficient sanitization of input arguments
Critical
EPSS 1.18%
< 3.1.32
3.1.32
GHSA-pr76-5cm5-w9cj
GitPython vulnerable to remote code execution due to insufficient sanitization of input arguments
Critical
EPSS 1.18%
< 3.1.32
3.1.32
GHSA-hcpj-qp55-gfph
GitPython vulnerable to Remote Code Execution due to improper user input validation
High
EPSS 6.14%
< 3.1.30
3.1.30
GHSA-hcpj-qp55-gfph
GitPython vulnerable to Remote Code Execution due to improper user input validation
High
EPSS 6.14%
< 3.1.30
3.1.30
Is this in your code?

MergeHarbor checks every repository's dependencies against this database, ranks what matters by exploitability and reachability, routes it to the owning team and opens the fix pull request.

Check your repos with MergeHarbor