---
id: CVE-2026-110860
title: >-
  GitPython from 3.1.62 before 3.2.0 contains a symlink-following flaw in
  Submodule.move(), which checks the destination only lexically and does not
  reject symbolic links in intermediate path components
summary: >-
  GitPython from 3.1.62 before 3.2.0 contains a symlink-following flaw in
  Submodule.move(), which checks the destination only lexically and does not
  reject symbolic links in intermediate path components. An untrusted repository
  can commit …
severity: medium
cvss: 6.1
cvssVector: 'CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:L'
cwe:
  - CWE-59
published: '2026-10-14'
updated: '2026-10-14'
sourceUpdated: '2026-10-14T23:17:27.340'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-110860'
references:
  - url: >-
      https://github.com/gitpython-developers/GitPython/security/advisories/GHSA-gq48-pqfc-9p58
    label: disclosure@vulncheck.com
  - url: >-
      https://www.vulncheck.com/advisories/gitpython-3.1.62-before-3.2.0-symlink-path-traversal-via-submodule-move
    label: disclosure@vulncheck.com
  - url: >-
      https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-110860.json
  - url: 'https://access.redhat.com/security/cve/CVE-2026-110860'
  - url: 'https://bugzilla.redhat.com/show_bug.cgi?id=2552968'
  - url: 'https://www.cve.org/CVERecord?id=CVE-2026-110860'
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2026-110860'
  - url: 'https://github.com/gitpython-developers/GitPython/pull/2232'
  - url: >-
      https://github.com/gitpython-developers/GitPython/commit/24b6f95d4b90ab1483fb601c736ac6e7c059cd61
  - url: 'https://github.com/gitpython-developers/GitPython'
  - url: 'https://github.com/gitpython-developers/GitPython/releases/tag/3.2.0'
tags:
  - nvd
  - cve.org
  - csaf
  - vex
  - red-hat
  - exploit-available
  - osv
  - pip
ingestedAt: '2026-10-15T00:02:07.185Z'
vendor: gitpython-developers
product: GitPython
affected:
  - GitPython >= 3.1.62 < 3.2.0
epss: 0.00188
epssPercentile: 0.08297
exploitAvailable: true
ssvc:
  exploitation: poc
  automatable: 'no'
  technicalImpact: partial
  timestamp: '2026-10-26T15:26:56.118240Z'
aliases:
  - GHSA-gq48-pqfc-9p58
ecosystem: pip
patched:
  - gitpython 3.2.0
---

## Overview

GitPython from 3.1.62 before 3.2.0 contains a symlink-following flaw in Submodule.move(), which checks the destination only lexically and does not reject symbolic links in intermediate path components. An untrusted repository can commit a symlink such as vendor pointing outside the worktree, so an application moving an initialized submodule beneath it relocates the checkout externally and corrupts the index and .gitmodules.

## Remediation

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

## Vendor advisories

- **Red Hat VEX** · Moderate · affected: Exploit Intelligence, Red Hat AI Inference Server, Red Hat Ansible Automation Platform 2, Red Hat Enterprise Linux AI (RHEL AI) 3, Red Hat OpenShift AI (RHOAI), Red Hat OpenStack Platform 13 (Queens), … · no fix planned: Exploit Intelligence, Red Hat Ansible Automation Platform 2, Red Hat OpenStack Platform 13 (Queens), Red Hat OpenStack Platform 16.2, … · updated 2026-10-16 · [vex](https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-110860.json)

## Package advisory (CVE-2026-110860)

Affected packages:

- `gitpython < 3.2.0`

Patched in:

- `gitpython 3.2.0`

Source: https://osv.dev/vulnerability/GHSA-gq48-pqfc-9p58
