CVE-2026-44310: CWE-129: Improper Validation of Array Index in sigstore gitsign
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.
AI Analysis
Technical Summary
The vulnerability occurs in the CertVerifier.Verify() function of gitsign, where certs[0] is accessed without verifying that the certificate slice returned by sd.GetCertificates() is non-empty. A CMS/PKCS7 signed message with an empty certificate set is valid DER but leads to an empty slice and thus an immediate panic due to out-of-range indexing. The panic is caught and suppressed by internal/io/streams.go's Wrap() function, which returns nil instead of an error. Consequently, the main verification logic exits with code 0, causing callers relying solely on exit codes to mistakenly treat a failed verification as successful. This flaw affects gitsign versions from 0.4.0 up to 0.15.0 and was resolved in version 0.15.0.
Potential Impact
The vulnerability causes the gitsign verification process to incorrectly report success when verification actually fails due to an empty certificate set. This can lead to false trust in Git commit signatures, undermining the integrity verification process. There is no direct confidentiality or integrity compromise from exploitation itself, but the reliability of signature verification is impacted. The CVSS score is 5.4 (medium severity), reflecting the impact on integrity and availability (due to application panic). No known exploits are reported in the wild.
Mitigation Recommendations
This vulnerability is fixed in gitsign version 0.15.0. Users should upgrade to version 0.15.0 or later to resolve the issue. Since no official patch or advisory link is provided, verify the upgrade from the official sigstore gitsign release channels. Until upgraded, users should be aware that verification exit codes may be unreliable for affected versions. No other mitigations are indicated.
CVE-2026-44310: CWE-129: Improper Validation of Array Index in sigstore gitsign
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.
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability occurs in the CertVerifier.Verify() function of gitsign, where certs[0] is accessed without verifying that the certificate slice returned by sd.GetCertificates() is non-empty. A CMS/PKCS7 signed message with an empty certificate set is valid DER but leads to an empty slice and thus an immediate panic due to out-of-range indexing. The panic is caught and suppressed by internal/io/streams.go's Wrap() function, which returns nil instead of an error. Consequently, the main verification logic exits with code 0, causing callers relying solely on exit codes to mistakenly treat a failed verification as successful. This flaw affects gitsign versions from 0.4.0 up to 0.15.0 and was resolved in version 0.15.0.
Potential Impact
The vulnerability causes the gitsign verification process to incorrectly report success when verification actually fails due to an empty certificate set. This can lead to false trust in Git commit signatures, undermining the integrity verification process. There is no direct confidentiality or integrity compromise from exploitation itself, but the reliability of signature verification is impacted. The CVSS score is 5.4 (medium severity), reflecting the impact on integrity and availability (due to application panic). No known exploits are reported in the wild.
Mitigation Recommendations
This vulnerability is fixed in gitsign version 0.15.0. Users should upgrade to version 0.15.0 or later to resolve the issue. Since no official patch or advisory link is provided, verify the upgrade from the official sigstore gitsign release channels. Until upgraded, users should be aware that verification exit codes may be unreliable for affected versions. No other mitigations are indicated.
Technical Details
- Data Version
- 5.2
- Assigner Short Name
- GitHub_M
- Date Reserved
- 2026-05-05T19:00:06.021Z
- Cvss Version
- 3.1
- State
- PUBLISHED
- Remediation Level
- null
Threat ID: 6a074b98ec166c07b06a98dd
Added to database: 5/15/2026, 4:36:40 PM
Last enriched: 5/15/2026, 4:52:15 PM
Last updated: 5/15/2026, 5:52:52 PM
Views: 3
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
External Links
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.