---
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
tags:
  - nvd
ingestedAt: '2026-10-15T00:02:07.185Z'
---

## 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.
