Git 2.56.1 fixes six security flaws, including a recursive clone RCE
The Git project released Git 2.56.1 on November 10, 2026, fixing six security vulnerabilities, the worst of which can run an attacker’s code when you recursively clone a malicious repository. Fixes were also backported to Git 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 and 2.50.2, so every developer, CI runner and server that runs Git should update. GitHub described the flaws in its Git security vulnerabilities announced post, and Git’s own 2.56.1 release notes list the same six CVEs.
What’s new
Neither GitHub’s post nor the release notes give CVSS scores or the first affected version. Here is what each flaw does, according to GitHub:
| CVE | Where | What an attacker can do |
|---|---|---|
| CVE-2026-111760 | Recursive clones | Run code during git clone --recursive |
| CVE-2026-113408 | Cloning an empty repo over protocol v2 | Make Git write a ref file outside the refs directory |
| CVE-2026-114467 | Merging signed tags | Corrupt the stack with a tag that has more than two signatures |
| CVE-2026-114469 | Binary patches | Crash Git with an out-of-bounds read |
| CVE-2026-105437 | Large merges | Corrupt the heap with a merge that has very many conflicts |
| CVE-2026-114466 | git fast-import |
Read arbitrary files, or create and append to files |
- Recursive clone code execution (CVE-2026-111760): an integer truncation in index handling lets an overly long path pass validation under one name and be written under a shorter one. A malicious repository can use it to replace a submodule’s
.gitfile with a symlink to a directory holding its own config or hooks, which then run during the clone. Git now rejects index paths that are too long before they are truncated. - Path traversal through an advertised HEAD (CVE-2026-113408): when you clone an empty repository over protocol v2, Git did not check the symref target the server advertises. With the default files ref backend, a later branch update could then write outside the ref directory. Git now validates ref names and symref targets it receives over protocol v2.
- Too many signatures (CVE-2026-114467): Git assumed a message has at most two GPG signatures when stripping them, so merging a tag with more can write past a fixed-size array on the stack. GitHub says hosting services that perform such merges for users can be affected too.
- Binary patch size check (CVE-2026-114469): the roughly 1 GiB limit only looked at the encoded patch, so a small patch could expand past it. Git now also checks the declared uncompressed size.
- Merge output overflow (CVE-2026-105437): the size of the merge result could overflow, for example with many conflicts or a large
conflict-marker-sizeattribute, leaving a buffer too small for what is written to it. This hits both local merges and apps or services that merge untrusted content. - fast-import file access (CVE-2026-114466): the
rewrite-submodules-fromandrewrite-submodules-tofeatures could read any file, andexport-pack-edgescould create or append to files. They are now refused from an input stream unless you pass--allow-unsafe-features.
What it means for developers
Update Git on your laptop, your build agents and anything that runs Git for you: Docker base images, CI images and apps that bundle their own copy. Check what you have with git --version and move to 2.56.1 or the patched release of your series: 2.55.1, 2.54.1, 2.53.1, 2.52.1, 2.51.3 or 2.50.2. If you only use a handful of everyday commands, our list of the 10 git commands most developers need covers what to run once you have upgraded.
On GitHub’s side, fixes are already deployed on GitHub.com and GitHub Enterprise Cloud, including the data residency version. GitHub Enterprise Server gets them in 3.19.15, 3.20.11, 3.21.9 and 3.22.4, and GitHub says Codespaces, GitHub Actions, GitHub Desktop and the GitHub Copilot app will ship patched Git. GitHub’s post does not mention Git for Windows or Git LFS, so watch their own release pages.
Until every machine is updated, GitHub recommends these stopgaps, which it says do not replace the fix:
- Clone only from servers you trust, and don’t recursively clone untrusted repositories.
- Don’t merge untrusted content or tags.
- Don’t apply binary patches or
git fast-importstreams from untrusted sources, and only pass--allow-unsafe-featureswhen you trust the program that made the stream.
Services that merge or apply patches on behalf of users are the most exposed, since several of these bugs are triggered by content an outsider controls. This is the second urgent developer-tool patch on codingislove this month, after the OpenSSH password bypass on Alpine Linux.
Sources
- Git security vulnerabilities announced (GitHub Blog, November 10, 2026)
- Git v2.56.1 release notes (git/git)