CVE-2026-110860 in GitPythoninfo

Summary

by MITRE • 10/15/2026

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.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

Analysis

by VulDB Data Team • 10/15/2026

The vulnerability identified within GitPython versions prior to 3.2.0 represents a critical path traversal issue rooted in insufficient validation of file system paths during repository operations. Specifically, the flaw resides in the Submodule.move() method, which is responsible for relocating initialized submodules within a working tree. The core technical deficiency lies in the fact that this function performs only lexical checks on the destination path rather than resolving and validating the actual physical location where files will be written. This oversight allows an attacker to exploit symbolic links embedded within intermediate directory components of the target path. By crafting a repository structure that includes symlinks pointing outside the designated worktree, an untrusted source can manipulate the file system operations performed by GitPython, effectively bypassing standard containment boundaries designed to keep modifications isolated within the project directory.

From an operational perspective, this vulnerability enables severe integrity violations and potential remote code execution scenarios depending on the application context. When a user or automated process moves a submodule beneath a maliciously crafted symlink structure, the checkout operation is redirected to write files in arbitrary locations outside the intended repository scope. This external relocation corrupts the local Git index and alters the .gitmodules configuration file in unintended ways. The corruption of these critical metadata structures can lead to inconsistent repository states, data loss, or further exploitation vectors if subsequent operations rely on corrupted state information. In environments where automated processing of untrusted repositories is common, such as continuous integration pipelines or dependency management tools, this flaw allows an attacker who controls the content of a referenced submodule to influence file system writes across the host machine's directory hierarchy.

This vulnerability aligns with CWE-22: Improper Limitation of a Pathname to a Restricted Directory, commonly known as path traversal. The failure to canonicalize paths or resolve symbolic links before performing write operations is a classic manifestation of this weakness. Furthermore, in the context of the MITRE ATT&CK framework, this behavior facilitates techniques related to Defense Evasion and potentially Command and Control if used to exfiltrate data or establish persistence through modified configuration files outside standard monitoring scopes. The lack of strict validation against symbolic link attacks means that the software does not adhere to secure coding practices required for handling untrusted input in file system operations.

Mitigation strategies must prioritize upgrading GitPython to version 3.2.0 or later, where this specific path traversal flaw has been addressed through improved validation logic. For applications unable to upgrade immediately, defensive programming measures should be implemented to sanitize and resolve all paths before passing them to library functions that interact with the file system. This includes using absolute path resolution methods like os.path.realpath() to detect any symbolic link redirections prior to execution. Additionally, restricting file system access permissions for processes running GitPython can limit the blast radius of such an exploit by preventing writes outside specific directories. Regular auditing of dependencies and enforcing strict input validation on repository sources are essential practices to maintain integrity in software supply chains that rely on version control systems.

Responsible

VulnCheck

Reservation

10/15/2026

Disclosure

10/15/2026

Moderation

accepted

EPSS

0.00000

KEV

no

Activities

very low

Sources

Do you want to use VulDB in your project?

Use the official API to access entries easily!