CVE-2026-44309

gitsign verify accepts signatures over go-git-normalized bytes, enabling trust confusion on malformed commits

State
Published
Severity
5.3 Medium
Published
May 15, 2026
Updated
May 15, 2026
Reserved
May 5, 2026

Read the record on cve.org

Description

Gitsign is a keyless Sigstore to signing tool for Git commits with your a GitHub / OIDC identity. Prior to 0.16.0, gitsign verify and gitsign verify-tag re-encode commit/tag objects through go-git's EncodeWithoutSignature before checking the signature, instead of verifying against the raw git object bytes. For malformed objects with duplicate tree headers, git-core and go-git parse different trees: git-core uses the first, go-git uses the second. A signature crafted over the go-git-normalized form (second tree) passes gitsign verify while git-core resolves the commit to a completely different tree. This breaks the invariant that a verified signature, the commit semantics git-core presents to users, and the object hash logged in Rekor all refer to the same content. This vulnerability is fixed in 0.16.0.

Scores

CVSSScoreVectorSource
3.15.3 MediumCVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:N/I:H/A:NGitHub_M

Weaknesses

  • CWE-347 Improper Verification of Cryptographic Signature
  • CWE-295 Improper Certificate Validation

Affected Products

ProductVersions
gitsignsigstore
  • < 0.16.0Affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.