Skip to main content

GitPython CVE-2026-67325

| EUVDEUVD-2026-51858 HIGH
OS Command Injection (CWE-78)
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
8.8 HIGH

Network vector with low complexity reflects indirect exploitation through the application layer; PR:L consistent with CVSS 4.0 input; no scope change as command execution is contained within the vulnerable system.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/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
Source Code Evidence Fetched
Aug 01, 2026 - 13:20 vuln.today
Analysis Generated
Aug 01, 2026 - 13:20 vuln.today
Patch available
Aug 01, 2026 - 13:01 EUVD
CVE Published
Aug 01, 2026 - 12:22 cve.org
HIGH 8.7

Blast Radius

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

Ecosystem-wide dependent count for version 3.1.51.

DescriptionCVE.org

GitPython before 3.1.51 contains an incomplete command injection blocklist that fails to account for git's long-option prefix abbreviation feature. Attackers can bypass the unsafe options guard by using abbreviated option names like upload_p instead of upload_pack, which git resolves to dangerous options and executes arbitrary commands.

AnalysisAI

Command injection in GitPython before 3.1.51 allows low-privileged attackers to bypass the check_unsafe_options blocklist by supplying abbreviated git option names that git's CLI resolves to dangerous long-options at runtime. This is an incomplete fix of CVE-2026-42215 (patched in 3.1.47): the guard canonicalizes only underscore-to-hyphen but does not model git's unambiguous long-option prefix abbreviation feature, so a kwarg like upload_p passes the blocklist unchanged yet arrives at git as --upload-pack, enabling arbitrary command execution. No CISA KEV listing or confirmed public exploit code was identified at time of analysis, though the GHSA advisory includes precise source code and sufficient technical detail to substantially lower exploitation barrier.

Technical ContextAI

GitPython (PyPI package, CPE cpe:2.3:a:gitpython-developers:gitpython:*:*:*:*:*:*:*:*) is a Python library for programmatic git operations. The vulnerable code is in git/cmd.py, specifically the check_unsafe_options() classmethod introduced in 3.1.47 as the fix for CVE-2026-42215. The root cause is CWE-184 (Incomplete List of Disallowed Inputs) cascading to CWE-78 (OS Command Injection): the guard applies only dashify() (underscore-to-hyphen normalization) before performing an exact dict lookup against blocked option names like --upload-pack, --config, -c, --receive-pack, and --exec. However, git's CLI parser accepts any unambiguous prefix of a long option - so --upload-p, --upload-pa, and --upload-pac all resolve to --upload-pack at the git binary level. GitPython's exact-match dict check never sees the full canonical name, so abbreviated kwargs pass the guard and are emitted to git verbatim, where git expands them to the dangerous option and executes the attacker-specified value as a command.

RemediationAI

The primary fix is upgrading GitPython to version 3.1.51 or later via pip (pip install --upgrade 'GitPython>=3.1.51'); the fix is implemented in commit 56806080c1348749b07daa4a2024ce47b3cad285 and merged via PR https://github.com/gitpython-developers/GitPython/pull/2161. If immediate upgrade is not possible, audit all call sites in the consuming application that pass user-controlled input as option kwargs to GitPython's clone, fetch, pull, or push methods, and replace blocklist-based filtering with an explicit allowlist of permitted safe option names - blocklist approaches are structurally fragile against this class of parser asymmetry. Relying on the default allow_unsafe_options=False setting alone provides no protection against abbreviated names and must not be treated as a compensating control. Restricting network-reachable endpoints that invoke GitPython with user-supplied parameters is a viable short-term mitigation but may degrade application functionality. Full advisory: https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-2f96-g7mh-g2hx.

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-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-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-73625 HIGH
8.7 Aug 13

Remote code execution in GitPython before 3.1.54 exploits a guard bypass in check_unsafe_options where the validation lo

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

CVE-2026-76221 HIGH
8.7 Aug 19

Config-name injection in GitPython <= 3.1.57 enables arbitrary git-config directive forgery and remote code execution vi

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-67325 vulnerability details – vuln.today

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