Skip to content
OpenAdvisories
Medium · 5.4 CVE-2026-44310 EUVD-2026-30564GHSA-7c37-gx6w-8vc5GO-2026-5212

gitsign --verify panics on empty-certificate PKCS7 and exits 0, bypassing exit-code callers

Published May 15, 2026 · Updated May 15, 2026 · Assigned by GitHub_M

Description

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.

Affected products

VendorProductAffectedFixed
sigstore gitsign >= 0.4.0, < 0.15.0 —

Fixed in Linux distributions

Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.

ReleasePackageFixed inAdvisory
Debian 14 gitsign 0.16.0-1 —
Debian 13 gitsign No fix yet —
ReleasePackageFixed inAdvisory
Ubuntu 26.10 gitsign No fix yet —
Ubuntu 25.10 gitsign No fix yet —
Show 1 more (older releases, extended support, other products)
ReleasePackageFixed inAdvisory
Ubuntu Pro 26.04 LTS gitsign No fix yet —
ReleasePackageFixed inAdvisory
openSUSE Leap 16.0 govulncheck-vulndb 0.0.20260723T184607-160000.1.1 openSUSE-SU-2026:21483-1

Affected packages

EcosystemPackageAffectedFixedRecord
Go github.com/sigstore/gitsign >= 0.4.0, < 0.15.0 0.15.0 GHSA-7c37-gx6w-8vc5

Advisories 1

References