As reported by The Hacker News, the Git project has patched a serious vulnerability—CVE-2026-111760—that allows a malicious repository to execute arbitrary code when a user performs a recursive clone that pulls submodules. The fix ships in Git 2.56.1, with backports across the 2.50 through 2.55 release lines. This is not a theoretical risk; the mechanism is elegant and the attack surface is vast.

Security Impact: As reported by The Hacker News, the Git project has patched a serious vulnerability—CVE-2026-111760—that allows a malicious repository to execute arbitrary code when a user performs a recursive clone that pulls submodules.

The Technical Mechanics

The root cause is an integer truncation bug in how Git handles its internal index. When a repository path exceeds a certain length, it bypasses Git's safety validation but is subsequently written to disk under a truncated name. An attacker can craft that truncated name to be .git, then use a symbolic link to redirect it to a directory containing attacker-controlled Git hooks or configuration. Because Git executes hooks at defined lifecycle points—clone, checkout, merge—code runs the moment Git touches that submodule.

The submodule context is critical. Git refuses to replace an existing .git directory with a symlink, but in a freshly cloned submodule, .git is a file, not a directory. That distinction is what makes recursive clones the exploitation vector.

This is a supply-chain attack primitive disguised as a version-control bug. The attacker doesn't need to compromise your infrastructure—they just need you to clone their repo.

Additional Vulnerabilities Patched in This Release

CVEDescriptionRisk
CVE-2026-111760Integer truncation in index path handling; RCE via recursive clone of malicious repoHigh — arbitrary code execution on clone
CVE-2026-113408Path traversal in Git protocol v2 when cloning an empty repository; later update can write outside the ref storeHigh — filesystem write outside intended scope
CVE-2026-114467Stack memory corruption from tags with more than two GPG signatures; denial of serviceMedium — crash / DoS on hosting services
CVE-2026-114469Binary patch expanding beyond ~1 GiB limit triggers out-of-bounds read and crashMedium — denial of service

Who Is Most Exposed

  • CI/CD pipelines that automatically clone external or community repositories with submodules—this is the primary risk vector. If your build runner does git clone --recursive on pull requests or third-party code, the runner host is exploitable.
  • Developer workstations where engineers routinely clone public repos, forks, or untrusted contributions for review or testing.
  • Self-hosted GitLab, Gitea, or Forgejo instances that may bundle or depend on system Git—these need separate patching from GitHub's cloud.
  • Git for Windows users: as of the article's publication, a fixed Windows build had not yet shipped, leaving Windows developers without an upstream patch.

Patch Status and Affected Versions

ProductFixed VersionStatus
Git (current)2.56.1Available
Git (2.50.x–2.55.x backports)2.50.2, 2.51.3, 2.52.1, 2.53.1, 2.54.1, 2.55.1Available
Git for WindowsPending as of Nov 10Not yet released — monitor
GitHub Enterprise Server3.19.15, 3.20.11, 3.21.9, 3.22.4Available
GitHub Enterprise Cloud / github.comN/A (managed)Patched server-side
GitHub Desktop, Copilot appIn progressFixes being prepared

No evidence of active in-the-wild exploitation has been reported at time of publication, but the public disclosure and available patch details make rapid exploitation likely—particularly against CI/CD runners that pull from public repositories.

Shield53 Recommendations

  • Patch immediately. Upgrade all systems running Git to 2.56.1 or the appropriate backported version. Identify every host that runs git: build runners, developer laptops, container images, IDEs that bundle Git, and CI/CD platform nodes.
  • Audit recursive clone usage. Search your CI/CD configuration for --recursive, --recurse-submodules, or submodule auto-initialization. Disable recursive cloning of untrusted or public repositories until patched.
  • Inventory your Git distribution sources. Homebrew, MSYS2, Linux distro packages, bundled copies in IDEs, Docker base images, and GitHub Desktop each ship their own Git. Every copy needs updating; a single unpatched instance on a build runner is sufficient for exploitation.
  • Apply interim hardening for Windows. Until Git for Windows ships a fix, avoid recursive clones on Windows machines entirely, restrict to trusted remotes, and disable protocol v2 empty-clone paths where feasible (relevant to CVE-2026-113408).
  • Review submodule policies. Organizations should treat submodule URLs with the same scrutiny as direct dependencies. Consider an allowlist of permitted submodule sources and reject clones that reference unexpected hosts.
  • Monitor for post-patch indicators. Review Git hook directories (.git/hooks/) on runner hosts for unexpected or recently modified files. Any non-standard hook in a cloned repository should be treated as suspicious.
  • For Git for Windows holdouts: follow the temporary guidance from GitHub—clone only from trusted servers, do not process untrusted binary patches, and do not merge untrusted content or tags.