Description
GitPython from 3.1.30 before 3.2.0 contains a remote code execution vulnerability in Remote.pull() whose unsafe-option guard inspects only keyword arguments, not the positional refspec. Attackers controlling the refspec can supply --upload-pack=<command> to execute OS commands as the calling process over local-path or SSH transports.
Published: 2026-10-14
Score: 9.2 Critical
EPSS: < 1% Very Low
KEV: No
Impact: Remote Code Execution
Action: Immediate Patch
AI Analysis

Impact

GitPython 3.1.30 through any release prior to 3.2.0 has a command‑injection flaw in the Remote.pull() method. The unsafe‑option guard checks only keyword arguments, not the positional refspec. An attacker who controls the refspec can supply a payload such as --upload-pack=<command> that causes the application to execute arbitrary OS commands when performing a pull over local‑path or SSH transports. This flaw is identified as CWE‑88 and permits an attacker to run code with the same privileges as the Python process that performs the pull.

Affected Systems

The affected product is GitPython, maintained by the GitPython developers. Versions ranging from 3.1.30 up to, but not including, 3.2.0 contain the vulnerability. Any environment – whether a local script, a web application, or a CI pipeline – that uses any of these releases and invokes Remote.pull() with an external repository is at risk. The defect does not affect earlier releases or GitPython 3.2.0 and later, which include a fixed safe‑option guard.

Risk and Exploitability

The CVSS score of 9.2 indicates critical severity. EPSS data are not available, and the issue is not listed in CISA KEV, yet the absence of a current EPSS does not reduce the risk if an attacker already has network connectivity to a Git repository the vulnerable host may pull from. The likely attack vector is an attacker‑controlled Git repository or a deceptive remote URL that the application pulls. Successful exploitation allows the attacker to execute arbitrary OS commands with the privileges of the process performing the pull, potentially leading to full system compromise.

Generated by OpenCVE AI on October 15, 2026 at 12:24 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade to GitPython 3.2.0 or later to apply the fixed safe‑option guard.
  • If an upgrade is not possible immediately, avoid passing untrusted refspecs to Remote.pull(); validate refs against a whitelist of allowed values before invoking the pull.
  • Run any remote pull operations under a least‑privileged user or in a sandboxed container to contain potential lateral movement.
  • Enforce network segmentation so that only trusted hosts can be contacted for Git pulls, and monitor logs for unusual pull activity.

Generated by OpenCVE AI on October 15, 2026 at 12:24 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Debian DLA Debian DLA DLA-4872-1 python-git security update
History

Wed, 21 Oct 2026 00:30:00 +0000

Type Values Removed Values Added
References
Metrics threat_severity

None

threat_severity

Critical


Sat, 17 Oct 2026 12:45:00 +0000

Type Values Removed Values Added
First Time appeared Gitpython-developers
Gitpython-developers gitpython
Vendors & Products Gitpython-developers
Gitpython-developers gitpython

Fri, 16 Oct 2026 18:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'total'}, 'version': '2.0.3'}


Wed, 14 Oct 2026 23:00:00 +0000

Type Values Removed Values Added
Description GitPython from 3.1.30 before 3.2.0 contains a remote code execution vulnerability in Remote.pull() whose unsafe-option guard inspects only keyword arguments, not the positional refspec. Attackers controlling the refspec can supply --upload-pack=<command> to execute OS commands as the calling process over local-path or SSH transports.
Title GitPython 3.1.30 before 3.2.0 Command Injection via Remote.pull() Refspec
First Time appeared Gitpython Project
Gitpython Project gitpython
Weaknesses CWE-88
CPEs cpe:2.3:a:gitpython_project:gitpython:*:*:*:*:*:*:*:*
Vendors & Products Gitpython Project
Gitpython Project gitpython
References
Metrics cvssV3_1

{'score': 8.1, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'}

cvssV4_0

{'score': 9.2, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N'}


Subscriptions

Gitpython-developers Gitpython
Gitpython Project Gitpython
cve-icon MITRE

Status: PUBLISHED

Assigner: VulnCheck

Published:

Updated: 2026-10-16T17:14:41.140Z

Reserved: 2026-10-14T22:16:22.735Z

Link: CVE-2026-110858

cve-icon Vulnrichment

Updated: 2026-10-16T16:35:47.954Z

cve-icon NVD

Status : Awaiting Analysis

Published: 2026-10-14T23:17:27.043

Modified: 2026-10-16T18:17:34.013

Link: CVE-2026-110858

cve-icon Redhat

Severity : Critical

Publid Date: 2026-10-14T22:52:42Z

Links: CVE-2026-110858 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-17T12:30:08Z

Weaknesses
  • CWE-88

    Improper Neutralization of Argument Delimiters in a Command ('Argument Injection')