CVE-2026-45022: go-git: Improper parsing of specially crafted objects may lead to inconsistent interpretation compared to upstream Git

Published May 11, 2026
·
Updated

Impact go-git may parse malformed Git objects in a way that differs from upstream Git. When commit or tag objects contain ambiguous or malformed headers, go-git’s decoded representation may expose values differently from how Git itself would interpret or reject the same object.

Additionally, go-git’s commit signing and verification logic operates over commit data reconstructed from go-git’s parsed representation rather than the original raw object bytes. As a result, go-git may sign or verify a commit payload that is not byte-for-byte equivalent to the object stored in the repository.

This can cause a signature to appear valid for a commit whose displayed or effective metadata differs from the object that was intended to be signed.

Patches Users should upgrade to a patched version in order to mitigate this vulnerability. Versions prior to v5 are likely to be affected, users are recommended to upgrade to a supported go-git version.

Credit

Thanks to @bugbunny-research (https://bugbunny.ai/) for reporting this to sigstore/gitsign, and to @wlynch, @patzielinski and @adityasaky for coordinating the disclosure with the go-git project. :bow: :1stplacemedal:

Thanks to @wayphinder for reporting this to the go-git project. :bow:

Other sources

go-git is an extensible git implementation library written in pure Go. Prior to 5.19.0 and 6.0.0-alpha.3, go-git may parse malformed Git objects in a way that differs from upstream Git. When commit or tag objects contain ambiguous or malformed headers, go-git’s decoded representation may expose values differently from how Git itself would interpret or reject the same object. Additionally, go-git’s commit signing and verification logic operates over commit data reconstructed from go-git’s parsed representation rather than the original raw object bytes. As a result, go-git may sign or verify a commit payload that is not byte-for-byte equivalent to the object stored in the repository. This can cause a signature to appear valid for a commit whose displayed or effective metadata differs from the object that was intended to be signed. This vulnerability is fixed in 5.19.0 and 6.0.0-alpha.3.

MITRE

Affected Software

5 affected componentsFixes available
go/github.com/go-git/go-git/v5<5.19.0
5.19.0
go/github.com/go-git/go-git/v6>=6.0.0-alpha.1<=6.0.0-alpha.2
6.0.0-alpha.3
go-git project Go-git Go<5.19.0
go-git project Go-git Go=6.0.0-alpha1
go-git project Go-git Go=6.0.0-alpha2

Event History

May 11, 2026
Advisory Published
via GitHub·02:48 PM
Data Sourced
via GitHub·02:48 PM
DescriptionWeaknessAffected Software
May 27, 2026
CVE Published
via MITRE·02:54 PM
Data Sourced
via MITRE·02:54 PM
DescriptionWeakness
Data Sourced
via NVD·03:16 PM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-45022?

The severity of CVE-2026-45022 has not been officially rated, but it poses risks due to potential discrepancies in parsing Git objects.

2

How do I fix CVE-2026-45022?

To fix CVE-2026-45022, upgrade to 'go-git' version 5.19.0 or version 6.0.0-alpha.3 or later.

3

What software is affected by CVE-2026-45022?

CVE-2026-45022 affects 'go-git' versions prior to 5.19.0 and between 6.0.0-alpha.1 and 6.0.0-alpha.2.

4

What type of issues does CVE-2026-45022 cause?

CVE-2026-45022 can cause parsing issues with malformed Git objects, leading to different interpretations compared to standard Git.

5

Who reported CVE-2026-45022?

CVE-2026-45022 was reported as an advisory on GitHub related to the 'go-git' library.

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