---
id: CVE-2026-110859
title: >-
  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
summary: >-
  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 …
severity: high
cvss: 7.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'
cwe:
  - CWE-88
vendor: gitpython-developers
product: GitPython
affected:
  - GitPython < 3.2.0
patched:
  - gitpython 3.2.0
published: '2026-10-14'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T18:14:51.460'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-110859'
references:
  - url: >-
      https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-23mf-xhv8-69c2
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/gitpython-before-3.2.0-arbitrary-file-read-via-head-checkout-branch-name
    label: disclosure@vulncheck.com
  - url: >-
      https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-23mf-xhv8-69c2
    label: 134c704f-9b21-4f2e-91b3-4a467353bcc0
  - url: 'https://github.com/gitpython-developers/GitPython/pull/2233'
  - url: >-
      https://github.com/gitpython-developers/GitPython/commit/8da65080849a56a2fc9f3e7817bbf0524e8397d5
  - url: 'https://github.com/gitpython-developers/GitPython'
  - url: 'https://github.com/gitpython-developers/GitPython/releases/tag/3.2.0'
tags:
  - nvd
  - cve.org
  - exploit-available
  - osv
  - pip
epss: 0.00387
epssPercentile: 0.32551
aliases:
  - GHSA-23mf-xhv8-69c2
ecosystem: pip
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'yes'
  technicalImpact: partial
  timestamp: '2026-10-15T15:39:51.208253Z'
ingestedAt: '2026-10-15T00:02:07.185Z'
---

## Overview

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.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.

## Package advisory (CVE-2026-110859)

Affected packages:

- `gitpython < 3.2.0`

Patched in:

- `gitpython 3.2.0`

Source: https://osv.dev/vulnerability/GHSA-23mf-xhv8-69c2
