GitPython: Arbitrary Git Repository Creation Outside the Working Tree via Unvalidated .gitmodules Submodule Name in
Affects GitPythonSource GCVE Database
Mentioned vulnerabilities
CVSS 8.2 High : upgrade to 3.1.58 soon.
Data as of 26 Oct 2026, 16:15 UTC
- Patch
- Available – fixed in 3.1.58
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:N/I:H/A:LWhat to do
Upgrade GitPython to 3.1.58.
Affected software
| Product | Affected | Fixed in |
|---|---|---|
| PyPIGitPython | Affected
| Fixed in
|
Check your own hosts for these packages with threat-finder (opens in a new tab), our free open-source scanner.
AI-suggested
A patch is available in GitPython version 3.1.58 that addresses this vulnerability by validating submodule names to prevent directory traversal. Users should upgrade to GitPython 3.1.58 or later. Until upgraded, avoid cloning and initializing submodules from untrusted repositories using GitPython. Core Git itself is not affected as it already blocks this attack class. No additional mitigations are indicated by the vendor advisory.
Description
GitPython versions prior to 3.1.58 contain a vulnerability where an attacker-controlled submodule name in a cloned repository's .gitmodules file can cause GitPython to create and initialize a Git repository outside the intended working directory. This occurs because GitPython does not validate the submodule name, allowing directory traversal sequences that lead to repository creation at arbitrary filesystem paths during submodule initialization.
References
- github.com/gitpython-developers/GitPython/security/advisories/GHSA-hmq2-w58f-27jc (opens in a new tab)
- github.com/gitpython-developers/GitPython/pull/2202 (opens in a new tab)
- github.com/gitpython-developers/GitPython/commit/4299c990e1ca21896f9485277caf7bb0ae5b404c (opens in a new tab)
- github.com/gitpython-developers/GitPython/commit/e4b8e7d026ca6abb4cf604f8e77093432ce23c06 (opens in a new tab)
- github.com/gitpython-developers/GitPython (opens in a new tab)
- github.com/gitpython-developers/GitPython/releases/tag/3.1.58 (opens in a new tab)
- nvd.nist.gov/vuln/detail/CVE-2026-76222 (opens in a new tab)
- github.com/pypa/advisory-database/tree/main/vulns/gitpython/PYSEC-2026-3784.yaml (opens in a new tab)
- vulncheck.com/advisories/gitpython-before-path-traversal-via-gitmodules-submodule-name (opens in a new tab)