CVE-2024-45395 in Sigstore-go
Summary
by MITRE • 09/05/2024
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.
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.
Analysis
by VulDB Data Team • 03/11/2025
The sigstore-go library vulnerability CVE-2024-45395 represents a critical denial of service weakness that affects versions prior to 0.6.1, fundamentally compromising the reliability of software supply chain security systems that depend on this Go library for verification operations. This vulnerability arises from the library's handling of maliciously crafted Sigstore Bundles that contain excessive amounts of verifiable data structures, including transparency log entries, RFC 3161 timestamps, and attestation subjects, creating a scenario where computational resources become exhausted during verification processes. The flaw aligns with CWE-400, specifically addressing resource exhaustion vulnerabilities that occur when systems fail to properly limit the amount of data processed during security operations. The attack vector is particularly insidious because it exploits the legitimate functionality of the Sigstore protocol while leveraging its computational complexity to create service disruption.
The technical implementation of this vulnerability stems from the absence of resource limits during the verification phase of Sigstore bundles, allowing attackers to craft malicious payloads containing thousands of verifiable data structures that require significant CPU cycles to process. Each transparency log entry, RFC 3161 timestamp, and attestation subject requires substantial computational overhead to validate, creating a cascading effect where verification operations can consume excessive system resources. This attack pattern specifically corresponds to the TUF security model's classification of "Endless data attacks" as outlined in the Trust Over Uptime framework, where adversaries exploit the legitimate verification mechanisms to exhaust system resources. The computational expense of validating these data structures can cause verification processes to hang indefinitely or consume all available CPU resources, effectively rendering the verification service unavailable to legitimate users.
The operational impact of CVE-2024-45395 extends beyond simple service disruption to potentially compromise entire software supply chain verification infrastructures that rely on sigstore-go for security validation. Organizations using vulnerable versions of this library face the risk of denial of service attacks that can disrupt critical security operations, particularly in environments where automated verification processes are integral to deployment pipelines and security controls. The vulnerability creates a direct pathway for attackers to target systems that depend on Sigstore verification, potentially causing cascading failures in security-critical applications. This aligns with ATT&CK technique T1499.004, which describes resource exhaustion attacks that target system availability, and demonstrates how legitimate security protocols can be weaponized against their own implementations when proper resource management is absent.
The remediation implemented in sigstore-go version 0.6.1 introduces hard limits that prevent the processing of excessive verifiable data structures within a single bundle, establishing clear boundaries for acceptable verification loads. These limits are specifically set at 32 signed transparency log entries, 32 RFC 3161 timestamps, 1024 attestation subjects, and 32 digests per attestation subject, providing sufficient capacity for legitimate use cases while preventing malicious exploitation. This approach represents a defensive programming technique that aligns with secure coding practices for preventing resource exhaustion attacks and follows industry standards for implementing rate limiting and resource constraints in security libraries. Organizations unable to immediately upgrade to version 0.6.1 can implement manual bundle validation measures that enforce similar limits prior to invoking the library's verification functions, providing a temporary mitigation strategy that maintains system security while allowing for gradual upgrade planning.
The vulnerability landscape for sigstore-go reflects broader challenges in securing software supply chain components, where legitimate security protocols can become attack vectors when proper resource management and input validation are omitted from implementation. This case demonstrates the importance of considering adversarial scenarios during security library development, particularly in systems that process untrusted data from external sources. The fix implemented addresses both the immediate security concern and establishes a precedent for secure library design that considers resource consumption as a fundamental security attribute rather than merely a performance consideration. Organizations should evaluate their entire software supply chain for similar vulnerabilities in other security libraries and protocols that might be susceptible to resource exhaustion attacks, implementing comprehensive monitoring and rate limiting strategies across their security infrastructure to prevent similar disruptions.