Skip to main content

GitPython CVE-2026-73625

| EUVDEUVD-2026-57794 HIGH
OS Command Injection (CWE-78)
2026-08-13 VulnCheck GHSA-pjjh-f8rp-rjv3
8.7
CVSS 4.0 · Vendor: VulnCheck
Share

Severity by source

Vendor (VulnCheck) PRIMARY
8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/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
vuln.today AI
9.9 CRITICAL

Network-reachable with low complexity; PR:L because application-level authenticated access is required; S:C because execution escapes the Python process into the host OS via git subprocess.

3.1 AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
SUSE
8.8 HIGH
AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Red Hat
8.8 HIGH
qualitative

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
X

Lifecycle Timeline

4
Patch available
Aug 13, 2026 - 13:01 EUVD
Source Code Evidence Fetched
Aug 13, 2026 - 12:37 vuln.today
Analysis Generated
Aug 13, 2026 - 12:37 vuln.today
CVE Published
Aug 13, 2026 - 11:28 cve.org
HIGH 8.7

Blast Radius

ecosystem impact
† from your stack dependencies † transitive graph · vuln.today resolves 4-path depth
  • 4 pypi packages depend on gitpython (4 direct, 0 indirect)

Ecosystem-wide dependent count for version 3.1.54.

DescriptionCVE.org

GitPython versions before 3.1.54 contain a remote code execution vulnerability in the check_unsafe_options guard that can be bypassed by smuggling git options inside single-character kwarg values. Attackers can supply crafted option dictionaries to clone_from, fetch, pull, push, ls_remote, iter_commits, blame, or archive methods to execute arbitrary OS commands via the --upload-pack parameter.

AnalysisAI

Remote code execution in GitPython before 3.1.54 exploits a guard bypass in check_unsafe_options where the validation logic inspects kwarg keys but never their values, allowing an attacker to smuggle dangerous git options such as --upload-pack inside single-character kwarg values across every guarded method - clone_from, fetch, pull, push, ls_remote, iter_commits, blame, and archive. Any application that passes externally-influenced kwargs to these methods is fully compromised; the attacker achieves arbitrary OS command execution as the host process. A working proof-of-concept is publicly available in the GHSA advisory; no CISA KEV listing has been issued at time of analysis.

Technical ContextAI

GitPython (CPE: cpe:2.3:a:gitpython-developers:gitpython:*:*:*:*:*:*:*:*) is a Python library that wraps git subprocess calls. The guard introduced to prevent command injection, check_unsafe_options, builds its candidate list via _option_candidates (cmd.py:1042-1046) using only kwarg keys - never values. When a single-character key like 'n' carries a value of '--upload-pack=<cmd>', the guard evaluates only '-n', which is absent from the denylist and passes cleanly. However, transform_kwarg (cmd.py:1600-1606) with split_single_char_options=True subsequently emits two distinct argv tokens: ['-n', '--upload-pack=<cmd>']. The git subprocess then parses the second token as an independent flag, triggering execution of the attacker-supplied command. CWE-78 (Improper Neutralization of Special Elements used in an OS Command) is the root class: user-supplied data traverses a validation gate that examines only a proxy of the data, not the data itself, before reaching an OS execution sink.

RemediationAI

Upgrade GitPython to version 3.1.54, which contains the fix introduced via PR #2180 (https://github.com/gitpython-developers/GitPython/pull/2180) and commit e8d0fbf774d1f6baa3b481adfe48bd262e43b453. Note that the patch is confirmed as merged upstream but the released patched version should be verified via PyPI before deployment. If an immediate upgrade is blocked, the most effective compensating control is to audit every call site where kwargs are derived from external input and replace dynamic kwarg construction with an explicit allowlist of safe, hardcoded option keys; disallowing any caller-controlled single-character kwarg values eliminates the smuggling vector without requiring library changes, though this requires application-level code review and may break legitimate workflows. Additionally, running the git subprocess under a restricted OS user with no write access to sensitive paths limits blast radius if exploitation occurs. The vendor advisory is at https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-r9mr-m37c-5fr3.

CVE-2022-24439 CRITICAL POC
9.8 Dec 06

All versions of package gitpython are vulnerable to Remote Code Execution (RCE) due to improper user input validation, w

CVE-2023-40590 HIGH POC
7.8 Aug 28

GitPython is a python library used to interact with Git repositories. Rated high severity (CVSS 7.8), this vulnerability

CVE-2026-78679 HIGH POC
7.1 Aug 25

Arbitrary file read in GitPython before 3.1.59 allows low-privileged remote attackers to exfiltrate sensitive files by s

CVE-2023-41040 MEDIUM POC
6.5 Aug 30

GitPython is a python library used to interact with Git repositories. Rated medium severity (CVSS 6.5), this vulnerabili

CVE-2023-40267 CRITICAL
9.8 Aug 11

GitPython before 3.1.32 does not block insecure non-multi options in clone and clone_from. Rated critical severity (CVSS

CVE-2026-78676 CRITICAL POC
9.3 Aug 25

Arbitrary code execution in GitPython before 3.1.59 arises from unsafe re-serialization of multi-line, quoted git-config

CVE-2026-67324 CRITICAL
9.3 Aug 01

Command execution in GitPython 3.1.50 arises because its default unsafe-option gate fails to recognize joined short-opti

CVE-2026-67325 HIGH POC
8.7 Aug 01

Command injection in GitPython before 3.1.51 allows low-privileged attackers to bypass the `check_unsafe_options` blockl

CVE-2026-42215 HIGH POC
8.8 May 07

Command injection in GitPython 3.1.30-3.1.46 allows remote authenticated attackers to execute arbitrary commands via und

CVE-2026-67323 HIGH POC
8.6 Aug 01

Command injection and arbitrary file overwrite in GitPython before 3.1.51 expose applications that pass attacker-control

CVE-2026-76220 HIGH POC
8.7 Aug 19

Arbitrary OS command execution in GitPython before 3.1.58 is possible by bypassing the check_unsafe_options guard using

CVE-2026-78677 HIGH POC
8.7 Aug 25

Arbitrary directory creation and potential hook-based code execution in GitPython affects all releases before 3.1.59. Th

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected
SUSE Linux Enterprise Module for Python 3 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected
SUSE Linux Enterprise Server 16.0 Affected

Share

CVE-2026-73625 vulnerability details – vuln.today

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy