CVE-2026-114145
CVE-2026-114145 · GitPython validates a submodule's ".git" path only after cloning into it (RCE)
This page contains facts from public vulnerability sources. Check the original advisory before updating.
GitPython is a python library used to interact with Git repositories. Prior to 3.2.1, create_submodule() in git/objects/submodule/base.py accepts an attacker-influenced submodule path such as .git/hooks and invokes _clone_repo() before safely rejecting the destination. In 3.1.x, _validate_repo_path() does not exist and the call succeeds silently, while in 3.2.0 and later affected revisions the check in git/index/base.py raises ValueError only after the clone has written to disk and does not remove the planted file. An attacker-controlled submodule can therefore place an executable post-checkout hook that a later Git operation executes. Exploitation requires an application to accept an untrusted submodule path and a clone destination such as .git/hooks that is empty enough for Git to clone into it, which commonly means that default sample hooks are absent. This issue is fixed in version 3.2.1.
CVSS 7.5 · High · EPSS 0.3% · Public exploit · Fix available
- Published
- Updated
Affected products and versions
gitpython
- Versions
- < 3.2.1: Affected
No fix published
python-git Debian:12
- Versions
- 3.1.30-1
- 3.1.30-1+deb12u2
- 3.1.36-1
- 3.1.37-1
- 3.1.37-2
- 3.1.37-3
- 3.1.44-1
- 3.1.45-1
- 3.1.46-1
- 3.1.50-1
- 3.1.61-1
- 3.1.62-1
- 3.1.62-2
- 3.1.62-3
- 3.2.1-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Debian:13
- Versions
- 3.1.44-1
- 3.1.45-1
- 3.1.46-1
- 3.1.50-1
- 3.1.61-1
- 3.1.62-1
- 3.1.62-2
- 3.1.62-3
- 3.2.1-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Debian:14
- Versions
- 3.1.44-1
- 3.1.45-1
- 3.1.46-1
- 3.1.50-1
- 3.1.61-1
- 3.1.62-1
- 3.1.62-2
- 3.1.62-3
- 3.2.1-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
gitpython PyPI
- Versions
- 0.1.7
- 0.2.0-beta1
- 0.3.0-beta1
- 0.3.0-beta2
- 0.3.1-beta2
- 0.3.2
- 0.3.2.1
- 0.3.2.RC1
- 0.3.3
- 0.3.4
- 0.3.5
- 0.3.6
- 0.3.7
- 1.0.0
- 1.0.1
- 1.0.2
- 2.0.0
- 2.0.1
- 2.0.2
- 2.0.3
- 2.0.4
- 2.0.5
- 2.0.6
- 2.0.7
- 2.0.8
- 2.0.9
- 2.0.9.dev0
- 2.0.9.dev1
- 2.1.0
- 2.1.1
- 2.1.10
- 2.1.11
- 2.1.12
- 2.1.13
- 2.1.14
- 2.1.15
- 2.1.2
- 2.1.3
- 2.1.4
- 2.1.5
- 2.1.6
- 2.1.7
- 2.1.8
- 2.1.9
- 3.0.0
- 3.0.1
- 3.0.2
- 3.0.3
- 3.0.4
- 3.0.5
- 3.0.6
- 3.0.7
- 3.0.8
- 3.0.9
- 3.1.0
- 3.1.1
- 3.1.10
- 3.1.11
- 3.1.12
- 3.1.13
- 3.1.14
- 3.1.15
- 3.1.16
- 3.1.17
- 3.1.18
- 3.1.19
- 3.1.2
- 3.1.20
- 3.1.22
- 3.1.23
- 3.1.24
- 3.1.25
- 3.1.26
- 3.1.27
- 3.1.28
- 3.1.29
- 3.1.3
- 3.1.30
- 3.1.31
- 3.1.32
- 3.1.33
- 3.1.34
- 3.1.35
- 3.1.36
- 3.1.37
- 3.1.38
- 3.1.4
- 3.1.40
- 3.1.41
- 3.1.42
- 3.1.43
- 3.1.44
- 3.1.45
- 3.1.46
- 3.1.47
- 3.1.48
- 3.1.49
- 3.1.5
- 3.1.50
- 3.1.51
- 3.1.52
- 3.1.53
- 3.1.54
- 3.1.55
- 3.1.56
- 3.1.57
- 3.1.58
- 3.1.59
- 3.1.6
- 3.1.60
- 3.1.61
- 3.1.62
- 3.1.7
- 3.1.8
- 3.1.9
- 3.2.0
- Affected ranges
- ECOSYSTEM: < 3.2.1
Update to 3.2.1
python-git Ubuntu:Pro:14.04:LTS
- Versions
- 0.3.2~RC1-2
- 0.3.2~RC1-3
- 0.3.2~RC1-3ubuntu0.1~esm1
- 0.3.2~RC1-3ubuntu0.1~esm2
- 0.3.2~RC1-3ubuntu0.1~esm3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:Pro:16.04:LTS
- Versions
- 1.0.1+git137-gc8b8379-1
- 1.0.1+git137-gc8b8379-2
- 1.0.1+git137-gc8b8379-2.1
- 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm1
- 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm2
- 1.0.1+git137-gc8b8379-2.1ubuntu0.1~esm4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:Pro:18.04:LTS
- Versions
- 2.1.5-1
- 2.1.6-1
- 2.1.7-1
- 2.1.8-1
- 2.1.8-1ubuntu0.1~esm1
- 2.1.8-1ubuntu0.1~esm2
- 2.1.8-1ubuntu0.1~esm4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:Pro:20.04:LTS
- Versions
- 2.1.11-1
- 3.0.4-1
- 3.0.5-1
- 3.0.7-1
- 3.0.7-1ubuntu0.1~esm1
- 3.0.7-1ubuntu0.1~esm2
- 3.0.7-1ubuntu0.1~esm4
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:Pro:22.04:LTS
- Versions
- 3.1.14-1
- 3.1.23-1
- 3.1.24-1
- 3.1.24-1ubuntu0.1~esm1
- 3.1.24-1ubuntu0.1~esm2
- 3.1.24-1ubuntu0.1~esm3
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:Pro:24.04:LTS
- Versions
- 3.1.30-1
- 3.1.37-1
- 3.1.37-3
- 3.1.37-3ubuntu0.1~esm2
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:26.10
- Versions
- 3.1.46-1
- 3.1.50-1
- 3.1.61-1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
python-git Ubuntu:Pro:26.04:LTS
- Versions
- 3.1.44-1
- 3.1.45-1
- 3.1.46-1
- 3.1.46-1ubuntu0.1~esm1
- Affected ranges
- ECOSYSTEM: (−∞, +∞)
No fix published
Original sources
- https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-83vg-56qc-22m7
- https://github.com/gitpython-developers/GitPython/pull/2264
- https://github.com/gitpython-developers/GitPython/commit/97eadb888d2f99567e3113f4e455be4ca128f697
- https://github.com/gitpython-developers/GitPython/releases/tag/3.2.1
- https://nvd.nist.gov/vuln/detail/CVE-2026-114145