FR
live

Git 2.56.1 patches six vulnerabilities, including code execution during a recursive clone

On November 10, 2026 the Git project shipped six security fixes, including arbitrary code execution triggered by recursively cloning a hostile repository. Upgrade to Git 2.56.1 and update everything that bundles it — IDEs, CI runners, review bots — because the trigger is nothing more than a clone.

A single steel chain link split open at its weld seam, resting beside an intact chain on dark concrete, the broken edge picked out in amber.

November 10, 2026. The Git project ships six security fixes. 2.56.1. That is the lead release carrying them, with backports to 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3, and 2.50.2. Arbitrary code execution. That is what the most severe of the six, CVE-2026-111760, makes possible — triggered by recursively cloning a hostile repository. Why it matters: Git is no longer just a developer binary. It is bundled inside IDEs, CI runners, and review bots, and half of these flaws fire on routine operations.

The code-execution flaw: CVE-2026-111760

CVE-2026-111760 is the only one of the six that leads to code execution. Its vector is the recursive clone — git clone --recursive, which fetches a repository and then its submodules. During that process Git validates paths before writing files into the working tree, rejecting paths that would overwrite its own repository metadata (the .git directory).

The bug is an integer truncation: the length of an index entry path is stored in a type that is too narrow, and a long enough value overflows. A crafted repository can therefore present a path that, once truncated, collides with a legitimate directory. Git writes into a location it believes is safe, then reuses that directory — and executes attacker-controlled code. The fix is to reject excessively long index entry paths before their lengths can be truncated.

The concrete scenario fits in one sentence: a developer or pipeline that recursively clones an untrusted repository — a third-party project, an incoming patch, a demo repo — can execute code without ever opening a file. It is a textbook supply-chain vector, in the same family as poisoned packages or malicious hooks, except it requires no interaction beyond the clone itself.

Five more flaws: memory corruption and path traversal

The other five flaws are less dramatic, but two of them hit operations that hosting platforms run constantly.

CVE-2026-113408 — path traversal through a server-advertised HEAD. When cloning an empty repository over Git protocol v2, the server can advertise a symbolic HEAD reference pointing to an unborn branch — one with no commits. A malicious server can make Git write references outside the expected directory. Git now validates the advertised target before accepting it, and extends that validation to other reference names and symbolic-reference targets received over protocol v2.

CVE-2026-114467 — stack corruption when removing signatures. While stripping GPG signatures from a message, Git assumed there would be at most two. A crafted message containing more than two signatures caused stack corruption — a denial of service that can also hit hosting services that perform these merges on behalf of their users. The fix removes the fixed-size array and handles any number of signatures.

CVE-2026-114469 — out-of-bounds reads when applying binary patches. Git rejects patches larger than roughly 1 GiB because its patch code cannot handle them safely. But that check only looked at the compressed input, not the declared uncompressed size. A crafted patch bypasses the check and causes an out-of-bounds read that crashes Git. Git now also checks the declared uncompressed size before processing the patch.

CVE-2026-105437 — heap corruption during large merges. The merge machinery calculates how much memory it needs for a merge result before writing the output; that calculation can overflow when the result is very large. The fix uses size-appropriate types and checked arithmetic, rejecting merges whose output size cannot be represented safely.

CVE-2026-114466 — filesystem access through fast-import streams. git fast-import reads a stream of commands to build a repository; some commands can access files outside the repository, even though Git already restricted them in part. The restriction is now complete.

What makes this batch different: the bundling surface

What changes the real-world severity of this batch is not the CVSS score, but who runs Git. Git is no longer just a tool invoked from the command line. It is bundled into:

  • IDEs and editors — VS Code and its derivatives, JetBrains — and their built-in clone functions;
  • CI runners and build images that run git clone on every commit;
  • review bots, dependency scanners, and platforms that clone repositories in order to analyze them;
  • libraries that bind Git — libgit2, go-git, dulwich — which must be rebuilt against the fixes.

That is exactly GitHub’s recommendation, delivered by Elijah Newren — the maintainer of merge-ort and the author of git-filter-repo, who authored the announcement: update not only Git, but any application that bundles it. An up-to-date IDE protects nothing if its embedded Git is two versions behind.

Checking your exposure in one minute

The check is trivial: compare your Git version against 2.56.1. Two commands cover it.

bash
git --version
git config --get-regexp 'submodule\..*\.url' | wc -l

The first prints the binary’s version. If it predates 2.56.1 — or the backport for your maintenance series — you are exposed to CVE-2026-111760. The second is a reminder: if you use submodules, that is precisely the surface of the most severe flaw. For managed fleets, the efficient move is to let the package manager do the work — apt, dnf, brew, or Git for Windows — rather than patching each machine by hand.

For teams that bundle Git into their images, the rule is the same as for any dependency: rebuild the images; do not stop at patching the local binary.

Verdict

If you clone untrusted repositories — third-party projects, incoming patches, demo forks — or if your pipelines recursively clone repositories you do not control, upgrade to Git 2.56.1, or the backport for your series, before your next code review, and rebuild CI images that shipped an older version. CVE-2026-111760 turns a git clone --recursive into code execution: a supply-chain vector that needs no interaction beyond the clone. If your fleet only clones internal repositories and everything is already current, the risk is low — but patch anyway within your normal window: the other five flaws are memory corruption and path traversals that hosting platforms absorb on your behalf.

References

The cyber brief, every Tuesday

The flaws that matter and the patches to apply, in a ten-minute read.

No spam. One-click unsubscribe.
read next

On the same topic

CISA puts GPUStack on the KEV catalog: an unauthenticated attacker takes over an AI GPU cluster

On November 9, 2026, CISA added four actively exploited flaws to its KEV catalog, including a CVSS 9.8 authentication flaw in GPUStack that hands administration of a GPU cluster to an unauthenticated attacker. Teams running this manager should move to 2.3.0 and then revoke every exposed secret, because the patch does not invalidate keys already stolen.

← Back to the feed

Type at least two characters.

↑ ↓ navigate ↵ open esc dismiss