CVE-2026-44310: Sigstore Gitsign signature verification bypass via empty certificate set

CVE-2026-44310 · Severity: medium · CVSS 5.4 · Published 2026-05-15

Gitsign is a tool used to digitally sign and verify Git commits using secure identities like GitHub. A flaw in how the tool handles certain malformed signatures causes it to crash internally and then incorrectly report a successful verification to the operating system. This could allow an attacker to bypass security checks in automated systems, such as CI/CD pipelines or scripts, that rely on the tool's exit code to confirm that a commit is authentic.

Technologies: github.com/sigstore/gitsign (Go). Vendors: Go, Sigstore.

Quick answers

Is CVE-2026-44310 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-44310 being exploited in the wild.
How severe is CVE-2026-44310?
Medium severity, with a CVSS score of 5.4, published 15 May 2026.
Which products and versions are affected?
github.com/sigstore/gitsign (Go) >= 0.4.0, < 0.15.0, SEMVER:introduced=0.4.0,fixed=0.15.0; Sigstore Gitsign >= 0.4.0, < 0.15.0.
Is there a fix for CVE-2026-44310?
Yes. github.com/sigstore/gitsign (Go): upgrade to 0.15.0 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-44310 attacked?
It is attacked over the network, in a software library.
Am I affected by CVE-2026-44310?
Check whether you run github.com/sigstore/gitsign (Go) or Sigstore Gitsign at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/sigstore/gitsign (Go): upgrade to 0.15.0 or later
    go get github.com/sigstore/gitsign@v0.15.0

Technical details

A vulnerability exists in Gitsign's `CertVerifier.Verify()` function within `pkg/git/verifier.go`. The code unconditionally dereferences the first element of the certificate slice (`certs[0]`) returned by `GetCertificates()` without checking if the slice is empty. An attacker can provide a CMS/PKCS7 signed message with an empty certificate set, which is structurally valid DER but causes an index-out-of-range panic. Because the panic is caught by a recovery function in `internal/io/streams.go` that returns a `nil` error, the application exits with code 0. Consequently, any automated tools or scripts that rely solely on the process exit code will interpret a failed/crashed verification as a success. This is fixed in version 0.15.0.

Affected products

  • Sigstore Gitsign >= 0.4.0, < 0.15.0

Identifiers

  • CVE-2026-44310
  • GHSA-7c37-gx6w-8vc5
  • GO-2026-5212

Timeline

  • 2026-05-04: advisory: GitHub Security Advisory published
  • 2026-05-15: disclosed: NVD publication date

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.