CVE-2026-105437, GitLab self-managed 19.5.4, 19.4.6 and 19.3.8 critical patch release: a heap overflow in Git's merge code that a user who can open a merge request can trigger for command execution as the git user on the Gitaly node; Git 2.56.1 also fixes CVE-2026-111760, code execution when a malicious repository is cloned with submodules; no exploitation reported
GitLab critical patch: a merge request can reach a Git heap overflow on Gitaly; update to 19.5.4, 19.4.6 or 19.3.8
Defender actions
- Upgrade every self-managed GitLab to 19.5.4, 19.4.6 or 19.3.8 now (self-compiled installs rebuild the Git in Gitaly and the Git at git.bin_path, or move the distribution Git to 2.56.1 or later) and, where that waits, limit who can create projects and sign up, because a user who can open a merge request reaches the flaw and code execution gives access to every repository on the Gitaly node.
Analysis
GitLab shipped an ad-hoc critical patch release on 2026-11-10, 19.5.4, 19.4.6 and 19.3.8 for CE and EE, for CVE-2026-105437, a vulnerability in Git that under certain conditions gives out-of-bounds heap writes that could run arbitrary commands in Gitaly's environment; it affects all versions from 16.2 before 19.3.8, 19.4 before 19.4.6 and 19.5 before 19.5.4, while GitLab.com and Dedicated already run a patched version (GitLab, 2026-11-10). GitLab's detection page says any user who can create a project and open a merge request reaches the flaw, which gives command execution as the git operating-system user and read and write access to every repository on that Gitaly node (GitLab, 2026-11-12).
Git 2.56.1 and the backports 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 and 2.50.2 of 2026-11-10 fix the same flaw and five others (GitHub Blog, 2026-11-10). The one that matters on workstations and CI runners is CVE-2026-111760: a long path that passes validation is written as .git and replaces a freshly cloned submodule's .git file with a symlink to a directory that holds attacker hooks or configuration, which GitHub says can execute attacker-controlled code during a recursive clone (oss-security, 2026-11-11; GitHub Blog, 2026-11-10). The maintainers believe it is only triggerable with --recurse-submodules and note that such a repository fails fsck, which does not protect downstream users, since an innocuous-looking .gitmodules pointing at it suffices (oss-security, 2026-11-11). GitHub Enterprise Server fixes are in 3.19.15, 3.20.11, 3.21.9 and 3.22.4, and GitHub is coordinating releases of GitHub Desktop and the Copilot app with patched Git (GitHub Blog, 2026-11-10); Git for Windows 2.56.1.windows.1 addresses the issue (Git for Windows, 2026-11-10). No source reports exploitation; GitLab documents a lab reproduction in which opening one merge request left a crash entry within a second and a half (GitLab, 2026-11-12).
Cited evidence
In GitLab, under certain conditions, this vulnerability in git can result in out-of-bounds heap writes, which could be used to execute arbitrary commands within GitLab’s Gitaly environment.
Arbitrary command execution in the Gitaly environment, as the git operating system user, by any authenticated user who can create a project.
Sources6
AI-generated · no human review · this permalink is the shareable record for the finding · verify operationally critical claims against the linked primary source.