CVE-2026-44310
ŚrednieCVSS 5.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 1 - wyżej niż 1% wszystkich znanych CVE
Streszczenie
Gitsign to narzędzie do bezkluczowego podpisywania commitów Git tożsamością GitHub/OIDC. W wersjach od 0.4.0 do przed 0.15.0 funkcja CertVerifier.Verify() bezwarunkowo odwołuje się do certs[0] po sd.GetCertificates() bez sprawdzenia długości slice; podpisana wiadomość CMS/PKCS7 z pustym zbiorem certyfikatów powoduje panic index-out-of-range, który w ścieżce gitsign --verify jest po cichu odzyskiwany i zwraca kod wyjścia 0, przez co weryfikacja kończy się fałszywym sukcesem. Podatność naprawiono w wersji 0.15.0.
Ocena ryzyka
Nieudana weryfikacja podpisu może zostać zinterpretowana jako sukces, co pozwala na obejście kontroli integralności commitów.
Rekomendacja
Zaktualizuj Gitsign do wersji 0.15.0 lub nowszej.
Inne podatności w Gitsign
Oryginalny opis (angielski, źródło NVD)
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

