Skip to main content
VulnerabilityPublished Updated

GitPython: Unsafe git option guard bypass via split_single_char_options=False short-option token smuggling enables

Affects GitPythonSource GCVE Database

0

CVSS 8.8 High : upgrade to 3.1.58 soon.

Data as of 26 Oct 2026, 16:15 UTC

CVSS 3.1 base score
8.8High
How severe the flaw is on the 0–10 CVSS scale.
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:H

What to do

Upgrade GitPython to 3.1.58.

Affected software

ProductAffectedFixed in
PyPIGitPythonAffected
  • <3.1.58
Fixed in
  • 3.1.58

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

Community reviews

Loading reviews…