CVE-2026-110860 GitPython 3.1.62 before 3.2.0 Symlink Path Traversal via Submodule.move()

Medium 6.9 Published Updated

An attacker can exploit symlink handling in GitPython's Submodule.move() to relocate files outside the worktree, corrupting the repository index.

Exploited in the wild
Not known
Login needed
Not needed
Attackable
Local or same network only
Victim action needed
A user has to click or open something
Fix
Available

What is CVE-2026-110860?

CVE-2026-110860 is a medium-severity path traversal vulnerability in gitpython-developers GitPython, published on 14 Oct 2026. It can only be exploited from the same machine or local network, and only if a user opens a file or follows a link.

Official description

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.

Weakness: CWE-59

Which versions are affected by CVE-2026-110860?

2 open source packages ship an affected version, including GitPython and gitpython.

PackageAffectedFixed in
GitPython PyPIAll versions3.2.0
gitpython PyPIAll versions3.2.0

How do I fix CVE-2026-110860?

Upgrade GitPython to 3.2.0 or later.

Upgrade, and resolve every user-supplied path against an allowed base folder before opening it. More about Path traversal.

Is CVE-2026-110860 being exploited?

It is not confirmed as exploited in the wild, but public exploit code for CVE-2026-110860 exists.

Sources

Also known as DEBIAN-CVE-2026-110860, ECHO-52da-a715-9855, GHSA-cfp4-478m-4f52, GHSA-gq48-pqfc-9p58, MINI-m4xw-v5x9-32p6, UBUNTU-CVE-2026-110860.

Is CVE-2026-110860 in your software?

Upload an SBOM and sbomify checks it against every vulnerability here, every day.

Check your SBOMs for free