Key facts
- Git patched CVE-2026-111760, an integer truncation flaw in index handling, in version 2.56.1.
- The flaw lets a malicious repository run attacker code during a recursive clone with submodules.
- Backported fixes ship for the 2.50 through 2.55 series as 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1 and 2.55.1.
- A submodule's .git file can be swapped for a symbolic link pointing to attacker-controlled hooks or configuration.
The Git project shipped version 2.56.1 with a fix for CVE-2026-111760, an integer truncation problem in how Git handles index data, stopping a malicious repository from making Git run attacker-controlled code during a recursive clone that pulls in submodules.
An integer truncation flaw occurs when shortening a value to fit a smaller data type, which can make a program misjudge a length or boundary. The flaw works through the way Git manages index paths during a recursive clone. A recursive clone brings down a repository together with its submodules, which nest inside a parent repository.
A path that is long gets past Git’s safety check, but Git writes it to disk using a shorter name that the attacker chooses, and that name can be .git. An attacker can replace a submodule’s .git file with a symbolic link that points to hooks or configuration under the attacker’s control. Git executes hooks at defined points in its workflow, so code controlled by the attacker runs as soon as Git uses that folder. After a fresh submodule clone, Git keeps .git as a file rather than allowing that folder to become a symbolic link.
Fixed versions prevent truncation of long index paths. The main fix shipped in Git 2.56.1. Backported patches are updates applied to older release series, and they are available for the 2.50 through 2.55 series as 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1 and 2.55.1. Users can get the patched versions from their operating system vendor or distributor, while Git for Windows had not yet put out a build based on Git 2.56.1 as of Tuesday at 19:09 UTC.
GitHub advised users to download a patched Git from their operating system vendor or distributor and to refresh any applications that include Git. GitHub has already patched github.com and GitHub Enterprise Cloud. Patches for GitHub Enterprise Server ship in versions 3.19.15, 3.20.11, 3.21.9 and 3.22.4. Updated builds of GitHub Desktop and GitHub Copilot are in preparation, and GitHub Codespaces and GitHub Actions will receive the corrected Git build.
Before applying fixes, GitHub says to clone only from trusted servers and to avoid recursive clones of repositories that are not trusted. GitHub also recommends against merging untrusted content or tags and against accepting binary patches or fast-import streams from sources that are not trusted. Those steps are not a substitute for installing the patches, and the advice applies while users wait for patched builds from their operating system vendor or distributor. Elijah Newren said, “If you cannot update immediately, clone only from trusted servers and avoid recursive clones of untrusted repositories.”
The same release addressed CVE-2026-113408, which allows a malicious server to write outside Git’s reference folder, using the files backend, when it clones an empty repository over protocol v2. Git’s protocol v2 is a version of the network protocol Git uses to transfer data. Git now checks the target of the HEAD symbolic reference and other reference names that arrive over protocol v2.
CVE-2026-114467 can corrupt stack memory and trigger denial of service when someone merges a tag carrying more than two GPG signatures. GPG signatures are cryptographic signatures used to verify the origin of data. Hosting services that perform merges on behalf of users may also be vulnerable to CVE-2026-114467. CVE-2026-114469 lets a binary patch grow beyond Git’s roughly 1 GiB limit, causing an out-of-bounds read that crashes the program, and Git now verifies the stated uncompressed size before it handles a binary patch.
CVE-2026-105437 lets a large merge with many conflicts and a large conflict-marker-size value write beyond a small buffer and corrupt heap memory. Heap memory is a region of memory used for dynamic allocation. GitLab assigned CVE-2026-105437 and said code-hosting servers are most likely targeted through git merge-tree.
CVE-2026-114466 concerns three features in git fast-import that can read files at will or create files and add data to them. git fast-import is a Git tool for importing data into a repository. Git blocks those features from an input stream unless –allow-unsafe-features is switched on.
When a server reads attributes from a repository, any user who can push branches and open a pull or merge request can set off CVE-2026-105437. A repository can contain a .gitattributes file. That file sets the conflict-marker-size attribute. Servers that cannot upgrade yet can set conflict-marker-size=7 in the info/attributes file of each repository or turn off merge checks for repositories that are not trusted.

Join the discussion