Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Full command execution yields C/I/A:H; AC:H because exploitation depends on a non-default application pattern passing untrusted options into multi_options, and PR:N/UI:N since no GitPython-level auth or interaction is required.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
4Blast Radius
ecosystem impact- 61 pypi packages depend on gitpython (47 direct, 14 indirect)
Ecosystem-wide dependent count for version 3.1.50.
DescriptionCVE.org
GitPython 3.1.50 fails to recognize joined short-option forms such as -u<value> (the short form of --upload-pack=<value>) when enforcing its default unsafe-option gate. When an application passes attacker-influenced clone options into Repo.clone_from(..., multi_options=..., allow_unsafe_options=False), an attacker can supply -u<helper> to bypass the gate that blocks --upload-pack/-u, causing Git to execute the specified helper command during clone. Fixed in 3.1.51.
AnalysisAI
Command execution in GitPython 3.1.50 arises because its default unsafe-option gate fails to recognize joined short-option syntax, letting an attacker who controls clone options smuggle -u<helper> (the short form of --upload-pack=<helper>) past the block on --upload-pack/-u. Applications calling Repo.clone_from with attacker-influenced multi_options and allow_unsafe_options=False are affected, allowing Git to execute an arbitrary helper command during clone despite the safety gate being active. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | Exploitation requires an application that passes attacker-influenced clone options into Repo.clone_from(..., multi_options=...) while relying on GitPython's default gate (allow_unsafe_options=False) to block command-executing options; the attacker must be able to inject a token of the exact joined short form -u<helper> where <helper> resolves to an executable command git runs during clone. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H, base 9.3) reflects the maximal case where attacker-controlled input reaches multi_options with no authentication or user interaction, and successful exploitation grants full command execution. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | A web service lets users submit a repository URL and pass-through clone flags, forwarding them into Repo.clone_from(url, multi_options=user_options, allow_unsafe_options=False) trusting the gate to block dangerous options. The attacker supplies -u/tmp/evil.sh (or a network-reachable helper), which slips past the gate as an unrecognized short option, and git executes it during clone as the service account. … |
| Remediation | Vendor-released patch: upgrade GitPython to 3.1.51, which corrects the option-canonicalization so joined short forms like -u<value> are recognized and blocked by the default gate (see the fix in PR https://github.com/gitpython-developers/GitPython/pull/2162 and advisory GHSA-v396-v7q4-x2qj). … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours: Inventory all applications and automation systems using GitPython, particularly those calling Repo.clone_from with untrusted input, and document current versions in use. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
All versions of package gitpython are vulnerable to Remote Code Execution (RCE) due to improper user input validation, w
GitPython is a python library used to interact with Git repositories. Rated high severity (CVSS 7.8), this vulnerability
GitPython is a python library used to interact with Git repositories. Rated medium severity (CVSS 6.5), this vulnerabili
GitPython before 3.1.32 does not block insecure non-multi options in clone and clone_from. Rated critical severity (CVSS
Command injection in GitPython before 3.1.51 allows low-privileged attackers to bypass the `check_unsafe_options` blockl
Command injection and arbitrary file overwrite in GitPython before 3.1.51 expose applications that pass attacker-control
Environment variable exfiltration in GitPython before 3.1.52 allows any attacker who controls a URL passed to `Repo.clon
Remote code execution via newline injection in GitPython before 3.1.50 allows an attacker who controls the section argum
Git-config section-name injection in GitPython <= 3.1.52 enables remote code execution by writing attacker-controlled `c
GitPython is a python library used to interact with Git repositories. Rated high severity (CVSS 7.8), this vulnerability
Same weakness CWE-78 – OS Command Injection
View allSame technique Command Injection
View allVendor StatusVendor
Share
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-51808
GHSA-cw2r-r7mw-j3hc