CVE-2026-44310
MediumCVSS 5.4Exploitation Probability (EPSS)
Low risk1th percentile - higher than 1% of all known CVEs
Summary
Gitsign is a keyless Sigstore signing tool for Git commits with a GitHub/OIDC identity. From 0.4.0 to before 0.15.0, CertVerifier.Verify() unconditionally dereferences certs[0] after sd.GetCertificates() without checking the slice length; a CMS/PKCS7 signed message with an empty certificate set causes an index-out-of-range panic that is silently recovered on the gitsign --verify path, returning exit code 0 and causing failed verification to be interpreted as success. This is fixed in 0.15.0.
Risk Assessment
A failed signature verification may be interpreted as success, allowing bypass of commit integrity checks.
Recommendation
Update Gitsign to version 0.15.0 or later.
Other vulnerabilities in Gitsign
Original NVD description (English source)
Gitsign is a keyless Sigstore to signing tool for Git commits with your a GitHub / OIDC identity. From 0.4.0 to before 0.15.0, CertVerifier.Verify() in pkg/git/verifier.go unconditionally dereferences certs[0] after sd.GetCertificates() without checking the slice length. A CMS/PKCS7 signed message with an empty certificate set is a structurally valid DER payload; GetCertificates() returns an empty slice with no error, causing an immediate index-out-of-range panic. On the gitsign --verify code path (the GPG-compatible mode invoked by git verify-commit), the panic is silently recovered by internal/io/streams.go's Wrap() function, which returns nil instead of an error. main.go then exits with code 0, causing exit-code-only verification callers to interpret the failed verification as success. This vulnerability is fixed in 0.15.0.
Vulnerability data from NVD (NIST) · CISA KEV · EPSS

