GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables
Affects GitPythonSource GCVE Database
CVSS 8.8 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:L/UI:N/S:U/C:H/I:H/A:HWhat 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 that corrects the _option_candidates function to emit value-derived candidates regardless of the split_single_char_options flag, or alternatively runs the unsafe option guard over the fully transformed argv tokens rather than the reconstructed candidate list. Users should upgrade GitPython to version 3.1.58 or later where this issue is fixed. Until patched, avoid passing split_single_char_options=False with user-controlled single-character kwargs to guarded GitPython methods.
Description
GitPython versions up to 3.1.57 contain a vulnerability where the unsafe git option guard can be bypassed by using the split_single_char_options=False flag combined with a single-character keyword argument. This allows an attacker to smuggle a short option token that leads to arbitrary OS command execution via the git --upload-pack option. The vulnerability affects all guarded methods that forward kwargs and occurs despite the default allow_unsafe_options=False setting. A patch is available to fix this issue.
References
- github.com/gitpython-developers/GitPython/security/advisories/GHSA-wvpp-8hx9-p66j (opens in a new tab)
- github.com/gitpython-developers/GitPython/pull/2204 (opens in a new tab)
- github.com/gitpython-developers/GitPython/commit/96a888f4d782cb2f80452148e48e60ce4af6d541 (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-76220 (opens in a new tab)
- vulncheck.com/advisories/gitpython-before-command-execution-via-split-single-char-options (opens in a new tab)