CVE-2026-105437: Heap-based Buffer Overflow in Git

Published Nov 10, 2026
·
Updated

Affected versions of Git have a heap buffer overflow in the three-way merge code (xdiff), which an attacker can trigger through a repository they control.

When Git merges a file, it first adds up the size of the merged output, allocates a buffer of that size, and then writes the output into it. That total was kept in a 32-bit signed integer. The conflict-marker-size attribute, which can be set from a committed .gitattributes file, accepts any positive integer, and the markers are written several times for every conflict. A small file with a huge marker size and many separate conflicts can therefore push the total past 4 GiB, so the integer wraps to a small value and Git writes attacker-controlled merge output past the end of a buffer that is too small. At minimum this crashes Git, and because the overflow is large and its contents are largely attacker-controlled, worse heap corruption is possible.

Any command that does a textual three-way merge can trigger it, such as git-merge(1), git-rebase(1), git-cherry-pick(1), and git-merge-tree(1). The latter is most likely a target for Git forges, which might use git-merge-tree(1) on the server-side to check mergeability. When the server reads attributes from trees in the repository (for example through attr.tree or --attr-source), any user who can push branches and request that they be merged (for example by opening a pull or merge request) can trigger the overflow without anyone else doing anything, and the data they push is small because the oversized output only appears during the merge.

The problem has been patched by computing the size as sizet and checking every addition for overflow, so Git stops with an error instead of overflowing.

Servers that cannot upgrade right away can add

conflict-marker-size=7

to each repository's info/attributes as a workaround, which overrides any in-tree .gitattributes, or turn off server-side mergeability checks for untrusted repositories.

Affected Software

1 affected component
Git Git

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade Git to a version that resolves this vulnerability.

    Fixed in 2.50.2
  2. Configuration

    Add '* conflict-marker-size=7' to each repository's info/attributes to override any in-tree .gitattributes.

    Git conflict-marker-size = 7
  3. Compensating control

    Turn off server-side mergeability checks for untrusted repositories.

Event History

Nov 10, 2026
CVE Published
via MITRE·06:34 PM
Data Sourced
via MITRE·06:34 PM
RemedyDescriptionSeverityWeakness
Data Sourced
via NVD·07:17 PM
DescriptionSeverityWeakness

Frequently Asked Questions

1

Who is most likely exposed to this issue?

Users who merge, rebase, or cherry-pick content from attacker-controlled repositories are exposed. Git forges may also be exposed if they use git-merge-tree server-side to evaluate mergeability for untrusted repositories or merge requests.

2

What must an attacker provide to trigger the overflow?

The attacker needs a repository they control containing a committed .gitattributes file with an extremely large positive conflict-marker-size value and file changes that produce many separate textual merge conflicts. A textual three-way merge must then be performed against that content.

3

Which Git operations can reach the vulnerable code?

Any command that performs a textual three-way merge can trigger it, including git merge, git rebase, git cherry-pick, and git merge-tree. Server-side use of git-merge-tree is specifically identified as a likely target.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203