CVE-2024-45395

sigstore-go, a Go library for Sigstore signing and verification, is susceptible to a denial of service attack in versions prior to 0.6.1 when a verifier is provided a maliciously crafted Sigstore Bundle containing large amounts of verifiable data, in the form of signed transparency log entries, RFC 3161 timestamps, and attestation subjects. The verification of these data structures is computationally expensive. This can be used to consume excessive CPU resources, leading to a denial of service attack. TUF's security model labels this type of vulnerability an "Endless data attack," and can lead to verification failing to complete and disrupting services that rely on sigstore-go for verification. This vulnerability is addressed with sigstore-go 0.6.1, which adds hard limits to the number of verifiable data structures that can be processed in a bundle. Verification will fail if a bundle has data that exceeds these limits. The limits are 32 signed transparency log entries, 32 RFC 3161 timestamps, 1024 attestation subjects, and 32 digests per attestation subject. These limits are intended to be high enough to accommodate the vast majority of use cases, while preventing the verification of maliciously crafted bundles that contain large amounts of verifiable data. Users who are vulnerable but unable to quickly upgrade may consider adding manual bundle validation to enforce limits similar to those in the referenced patch prior to calling sigstore-go's verification functions.
Configurations

Configuration 1 (hide)

cpe:2.3:a:sigstore:sigstore-go:*:*:*:*:*:*:*:*

History

24 Sep 2024, 16:50

Type Values Removed Values Added
References () https://github.com/sigstore/sigstore-go/blob/725e508ed4933e6f5b5206e32af4bbe76f587b54/pkg/verify/signature.go#L183-L193 - () https://github.com/sigstore/sigstore-go/blob/725e508ed4933e6f5b5206e32af4bbe76f587b54/pkg/verify/signature.go#L183-L193 - Issue Tracking
References () https://github.com/sigstore/sigstore-go/blob/725e508ed4933e6f5b5206e32af4bbe76f587b54/pkg/verify/tlog.go#L74-L178 - () https://github.com/sigstore/sigstore-go/blob/725e508ed4933e6f5b5206e32af4bbe76f587b54/pkg/verify/tlog.go#L74-L178 - Issue Tracking
References () https://github.com/sigstore/sigstore-go/blob/725e508ed4933e6f5b5206e32af4bbe76f587b54/pkg/verify/tsa.go#L59-L68 - () https://github.com/sigstore/sigstore-go/blob/725e508ed4933e6f5b5206e32af4bbe76f587b54/pkg/verify/tsa.go#L59-L68 - Issue Tracking
References () https://github.com/sigstore/sigstore-go/commit/01e70e89e58226286d7977b4dba43b6be472b12c - () https://github.com/sigstore/sigstore-go/commit/01e70e89e58226286d7977b4dba43b6be472b12c - Patch
References () https://github.com/sigstore/sigstore-go/security/advisories/GHSA-cq38-jh5f-37mq - () https://github.com/sigstore/sigstore-go/security/advisories/GHSA-cq38-jh5f-37mq - Mitigation, Vendor Advisory
First Time Sigstore
Sigstore sigstore-go
CPE cpe:2.3:a:sigstore:sigstore-go:*:*:*:*:*:*:*:*
CVSS v2 : unknown
v3 : 3.1
v2 : unknown
v3 : 7.5

05 Sep 2024, 12:53

Type Values Removed Values Added
Summary
  • (es) sigstore-go, una librería Go para la firma y verificación de Sigstore, es susceptible a un ataque de denegación de servicio en versiones anteriores a la 0.6.1 cuando se proporciona a un verificador un paquete Sigstore creado con fines malintencionados que contiene grandes cantidades de datos verificables, en forma de entradas de registro de transparencia firmadas, marcas de tiempo RFC 3161 y sujetos de atestación. La verificación de estas estructuras de datos es costosa en términos computacionales. Esto se puede utilizar para consumir recursos excesivos de CPU, lo que lleva a un ataque de denegación de servicio. El modelo de seguridad de TUF etiqueta este tipo de vulnerabilidad como un "ataque de datos sin fin", y puede llevar a que la verificación no se complete y se interrumpan los servicios que dependen de sigstore-go para la verificación. Esta vulnerabilidad se soluciona con sigstore-go 0.6.1, que agrega límites estrictos a la cantidad de estructuras de datos verificables que se pueden procesar en un paquete. La verificación fallará si un paquete tiene datos que exceden estos límites. Los límites son 32 entradas de registro de transparencia firmadas, 32 marcas de tiempo RFC 3161, 1024 sujetos de atestación y 32 resúmenes por sujeto de atestación. Estos límites están pensados para ser lo suficientemente altos como para dar cabida a la gran mayoría de casos de uso, al tiempo que se evita la verificación de paquetes creados con fines malintencionados que contienen grandes cantidades de datos verificables. Los usuarios que son vulnerables pero no pueden actualizar rápidamente pueden considerar la posibilidad de añadir una validación manual de paquetes para aplicar límites similares a los del parche al que se hace referencia antes de llamar a las funciones de verificación de sigstore-go.

04 Sep 2024, 21:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-09-04 21:15

Updated : 2024-09-24 16:50


NVD link : CVE-2024-45395

Mitre link : CVE-2024-45395

CVE.ORG link : CVE-2024-45395


JSON object : View

Products Affected

sigstore

  • sigstore-go
CWE
CWE-835

Loop with Unreachable Exit Condition ('Infinite Loop')