CVE-2026-39984: Sigstore Timestamp Authority has Improper Certificate Validation in verifier
Authorization bypass via certificate bag manipulation in sigstore/timestamp-authority verifier
An authorization bypass vulnerability exists in sigstore/timestamp-authority verifier (timestamp-authority/v2/pkg/verification): VerifyTimestampResponse function correctly verifies the certificate chain but when the TSA specific constraints are verified in VerifyLeafCert, the first non-CA certificate from the PKCS#7 certificate bag is used instead of the leaf certificate from the certificate chain. An attacker can exploit this by prepending a forged certificate to the certificate bag while the message is signed with an authorized key. The library validates the signature using the one certificate but performs authorization checks on the another, allowing an attacker to bypass some authorization controls.
This vulnerability does not apply to timestamp-authority service, only to users of timestamp-authority/v2/pkg/verification package.
This vulnerability does not apply to sigstore-go even though it is a user of timestamp-authority/v2/pkg/verification: Providing TSACertificate option to VerifyTimestampResponse fully mitigates the issue.
Patches
The issue will be fixed in timestamp-authority 2.0.6
Workarounds
Users of VerifyTimestampResponse can use the TSACertificate option to specify the exact certificate they expect to be used: this fully mitigates the issue.
References
This issue was found after reading CVE-2026-33753 / GHSA-3xxc-pwj6-jgrj (originally reported by @Jaynornj and @Pr00fOf3xpl0it)
Other sources
Sigstore Timestamp Authority is a service for issuing RFC 3161 timestamps. Versions 2.0.5 and below contain an authorization bypass vulnerability in the VerifyTimestampResponse function. VerifyTimestampResponse correctly verifies the certificate chain signature, but the TSA-specific constraint checks in VerifyLeafCert uses the first non-CA certificate from the PKCS#7 certificate bag instead of the leaf certificate from the verified chain. An attacker can exploit this by prepending a forged certificate to the certificate bag while the message is signed with an authorized key, causing the library to validate the signature against one certificate but perform authorization checks against another. This vulnerability only affects users of the timestamp-authority/v2/pkg/verification package and does not affect the timestamp-authority service itself or sigstore-go. The issue has been fixed in version 2.0.6.
— MITRE
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
go/github.com/sigstore/timestamp-authority/v2to a version that resolves this vulnerability.Fixed in 2.0.6 - Upgrade
Upgrade
sigstore/timestamp-authority verifier (timestamp-authority/v2/pkg/verification)to a version that resolves this vulnerability.Fixed in 2.0.6 - Compensating control
For users of `timestamp-authority/v2/pkg/verification` calling `VerifyTimestampResponse`, provide the `TSACertificate` option to specify the exact certificate expected to be used (fully mitigates the issue, including when using versions 2.0.5 and below).
Event History
Frequently Asked Questions
What is the severity of CVE-2026-39984?
CVE-2026-39984 is classified as a high severity vulnerability due to the potential for authorization bypass.
How do I fix CVE-2026-39984?
To remediate CVE-2026-39984, upgrade to sigstore/timestamp-authority version 2.0.6 or later.
What does CVE-2026-39984 affect?
CVE-2026-39984 affects the sigstore/timestamp-authority verifier, specifically the VerifyTimestampResponse function.
Can CVE-2026-39984 lead to data exposure?
Yes, if exploited, CVE-2026-39984 can allow unauthorized access to potentially sensitive transactions.
What are the symptoms of CVE-2026-39984 exploitation?
Symptoms of exploitation of CVE-2026-39984 may include unexpected authorization failures or unauthorized actions in transactions.