CVE-2026-110859
7.5HighPublished 14 Oct 2026 · NVD status: Awaiting Analysis · AI triage by gemini-3.8-flash
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
- Impact
- High impact on confidentiality
- Weakness
- CWE-88
Impact
Remote attackers can read arbitrary files from the host system if your application clones or checks out an untrusted Git repository. The attacker only needs the application to clone a repo with a maliciously named branch, leaking file contents via error messages.
Root cause
GitPython's Head.checkout() passes branch names directly to the git command line without sanitization, allowing branch names formatted like flags to be interpreted as command-line options.
Affected systems
GitPython versions prior to 3.2.0
CVSS v3.1 · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
Fix & remediation
Upgrade GitPython to version 3.2.0 or later. If upgrading immediately is not possible, sanitize or validate branch names before passing them to Head.checkout() or avoid cloning untrusted repositories.
$ pip install --upgrade 'GitPython>=3.2.0'AI-suggested. Run it in staging first and check it against the vendor advisory. Why?
NVD description
GitPython before 3.2.0 contains an argument injection vulnerability in Head.checkout() that allows remote attackers to read arbitrary files by supplying a branch name parsed as a git option. Attackers can host a repository whose default branch is named --pathspec-from-file=<path>, causing cloning applications that check out the active branch to leak file contents through GitCommandError messages.