CVE-2026-110860 GitPython 3.1.62 before 3.2.0 Symlink Path Traversal via Submodule.move()
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.
| Package | Affected | Fixed in |
|---|---|---|
GitPython PyPI | All versions | 3.2.0 |
gitpython PyPI | All versions | 3.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.