---
schema: 1
kind: vulnerability
title: "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"
headline: "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"
summary: "GitLab shipped an ad-hoc critical patch release on 2026-11-10 for CVE-2026-105437, a heap overflow in Git that, per GitLab, any user who can create a project and open a merge request reaches, and that can run commands as the git user with access to every repository on that Gitaly node. Git 2.56.1 and its backports fix the same flaw and five others, among them CVE-2026-111760, code execution when a malicious repository is cloned with --recurse-submodules; no source reports exploitation."
discovered_at: "2026-11-14T04:12:00Z"
updated_at: null
event_date: "2026-11-10"
run_id: 2026-11-14T0255Z-intel
priority: notable
immediate_action: null
tags: [vulnerabilities, rce, patch-available]
regions: [global]
sectors: [technology]
entities: ["product:git", "product:github-enterprise-server"]
techniques: [T1190, T1203]
affected_products: ["GitLab Community Edition", "GitLab Enterprise Edition", "Git", "GitHub Enterprise Server"]
cves:
  - id: CVE-2026-105437
    cvss: "7.5 (GitLab as CNA; GitLab's patch page rates it Critical)"
    epss: null
    type: memory-corruption
    vector: zero-click
    auth: post-auth
    status: [patch-available]
    affected: "GitLab CE/EE from 16.2 before 19.3.8, 19.4 before 19.4.6 and 19.5 before 19.5.4; Git before 2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1, 2.55.1 and 2.56.1 on each series"
    fixed: "GitLab 19.3.8, 19.4.6, 19.5.4; Git 2.56.1, 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3, 2.50.2; GitHub Enterprise Server 3.19.15, 3.20.11, 3.21.9, 3.22.4"
  - id: CVE-2026-111760
    cvss: "8.0 (GitHub advisory)"
    epss: null
    type: rce
    vector: user-interaction
    auth: pre-auth
    status: [patch-available]
    affected: "Git before 2.56.1 (and before the matching backport on each older series); the maintainers say all versions back to 2.27.0"
    fixed: "Git 2.56.1, 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3, 2.50.2; Git for Windows 2.56.1.windows.1"
sources:
  - url: "https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-5-4-released/"
    publisher: "GitLab (critical patch release 19.5.4, 19.4.6, 19.3.8)"
    date: "2026-11-10"
    role: primary
  - url: "https://github.blog/open-source/git/git-security-vulnerabilities-announced-7/"
    publisher: "GitHub Blog"
    date: "2026-11-10"
    role: corroborating
  - url: "https://www.openwall.com/lists/oss-security/2026/11/11/10"
    publisher: "oss-security (Git maintainers' announcement)"
    date: "2026-11-11"
    role: corroborating
  - url: "https://gitlab.com/gitlab-security-oss/tldr/-/raw/main/Detections/platforms/GitLab/Vulnerability%20Detections/git_merge_tree_child_process_crash.md"
    publisher: "GitLab (detection guidance)"
    date: "2026-11-12"
    role: corroborating
  - url: "https://thehackernews.com/2026/11/git-patches-flaw-that-lets-malicious.html"
    publisher: "The Hacker News"
    date: "2026-11-11"
    role: corroborating
  - url: "https://github.com/git-for-windows/git/releases/tag/v2.56.1.windows.1"
    publisher: "Git for Windows"
    date: "2026-11-10"
    role: corroborating
closed_sources: []
evidence:
  - quote: "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."
    publisher: "GitLab"
    source_url: "https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-5-4-released/"
  - quote: "Arbitrary command execution in the Gitaly environment, as the `git` operating system user, by any authenticated user who can create a project."
    publisher: "GitLab"
    source_url: "https://gitlab.com/gitlab-security-oss/tldr/-/raw/main/Detections/platforms/GitLab/Vulnerability%20Detections/git_merge_tree_child_process_crash.md"
verification: multi-source
sourcing_note: "GitLab is the CNA for CVE-2026-105437 and the only assessor of its reach on GitLab; the Git maintainers' and GitHub's statements describe the Git defects. GitLab's patch page labels the flaw Critical while its CNA record scores CVSS 3.1 7.5 with no privileges required, and its detection page says an authenticated user who can create a project reaches it. The detection file is the one GitLab's patch page links; its date is the page's last-verified date. CVE-2026-111760 had no CVE Services or NVD record when checked on 2026-11-14, so its score is GitHub's advisory score. The four other Git CVEs of the release, scored 3.3 to 4.4 by their CNA records, are not carried. No fetched source reports exploitation and none of the six CVEs is in CISA's catalog; GitLab's CNA record tags a HackerOne report that could not be read."
confidence: high
references: []
deep_dive: false
deep_dive_category: null
org_triage: null
classification:
  reliability: A
  credibility: 2
watchlist_hit: false
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."
updates: []
migrated_from: null
---

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](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-5-4-released/)). 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](https://gitlab.com/gitlab-security-oss/tldr/-/raw/main/Detections/platforms/GitLab/Vulnerability%20Detections/git_merge_tree_child_process_crash.md)).

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](https://github.blog/open-source/git/git-security-vulnerabilities-announced-7/)). 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](https://www.openwall.com/lists/oss-security/2026/11/11/10); [GitHub Blog, 2026-11-10](https://github.blog/open-source/git/git-security-vulnerabilities-announced-7/)). 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](https://www.openwall.com/lists/oss-security/2026/11/11/10)). 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](https://github.blog/open-source/git/git-security-vulnerabilities-announced-7/)); Git for Windows 2.56.1.windows.1 addresses the issue ([Git for Windows, 2026-11-10](https://github.com/git-for-windows/git/releases/tag/v2.56.1.windows.1)). 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](https://gitlab.com/gitlab-security-oss/tldr/-/raw/main/Detections/platforms/GitLab/Vulnerability%20Detections/git_merge_tree_child_process_crash.md)).

**Exposure:** a self-managed GitLab CE or EE in the affected ranges that lets users create projects and merge requests, or any Git older than the fixed releases on a workstation, CI runner or service that clones or merges untrusted repositories; applications that bundle Git need their own update ([GitLab, 2026-11-10](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-5-4-released/); [GitHub Blog, 2026-11-10](https://github.blog/open-source/git/git-security-vulnerabilities-announced-7/)).

**Detection:** GitLab's rule fires when the error field of a Gitaly event contains merge-tree: signal: followed by anything other than killed or terminated, and a .gitattributes in the target branch that sets an unusually large conflict-marker-size supports a true positive; GitLab says a working attempt is silent, a clean result does not prove the flaw was not used, the rules rest on error wording captured on 19.4.1 only, and many installs do not ship the Gitaly and Sidekiq logs ([GitLab, 2026-11-12](https://gitlab.com/gitlab-security-oss/tldr/-/raw/main/Detections/platforms/GitLab/Vulnerability%20Detections/git_merge_tree_child_process_crash.md)). On build hosts, hook scripts or shells spawned by git during a recursive clone are the behavior CVE-2026-111760 produces.

**Defender takeaway:** upgrade self-managed GitLab to a fixed release and, for a self-compiled install, rebuild both the Git in Gitaly and the Git at git.bin_path or move the distribution Git to 2.56.1 or later ([GitLab, 2026-11-10](https://docs.gitlab.com/releases/patches/patch-release-gitlab-19-5-4-released/)); until then limit who can create projects and sign up, and on a hit treat the instance and every repository on that Gitaly node as compromised ([GitLab, 2026-11-12](https://gitlab.com/gitlab-security-oss/tldr/-/raw/main/Detections/platforms/GitLab/Vulnerability%20Detections/git_merge_tree_child_process_crash.md)). Servers that cannot upgrade yet can set conflict-marker-size=7 in each repository's info/attributes or turn off the merge checks for untrusted repositories ([The Hacker News, 2026-11-11](https://thehackernews.com/2026/11/git-patches-flaw-that-lets-malicious.html)). Update Git on runners and workstations and avoid recursive clones of untrusted repositories until it is done.
