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.

Project Subscriptions

Vendors Products
Sigstore Subscribe
Gitsign Subscribe
Advisories
Source ID Title
Github GHSA Github GHSA GHSA-7c37-gx6w-8vc5 gitsign --verify panics on empty-certificate PKCS7 and exits 0, bypassing exit-code callers
Fixes

Solution

No solution given by the vendor.


Workaround

No workaround given by the vendor.

History

Fri, 15 May 2026 17:45:00 +0000

Type Values Removed Values Added
First Time appeared Sigstore
Sigstore gitsign
Vendors & Products Sigstore
Sigstore gitsign

Fri, 15 May 2026 17:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'poc', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Fri, 15 May 2026 16:45:00 +0000

Type Values Removed Values Added
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.
Title gitsign --verify panics on empty-certificate PKCS7 and exits 0, bypassing exit-code callers
Weaknesses CWE-129
CWE-390
References
Metrics cvssV3_1

{'score': 5.4, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:L'}


Projects

Sign in to view the affected projects.

cve-icon MITRE

Status: PUBLISHED

Assigner: GitHub_M

Published:

Updated: 2026-05-15T16:44:36.684Z

Reserved: 2026-05-05T19:00:06.021Z

Link: CVE-2026-44310

cve-icon Vulnrichment

Updated: 2026-05-15T16:44:27.724Z

cve-icon NVD

Status : Received

Published: 2026-05-15T17:16:47.430

Modified: 2026-05-15T17:16:47.430

Link: CVE-2026-44310

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-15T17:30:04Z

Weaknesses