CVE-2026-31830: sigstore-ruby verifier returns success for DSSE bundles with mismatched in-toto subject digest

Published Mar 10, 2026
·
Updated

Summary

Sigstore::Verifier#verify does not propagate the VerificationFailure returned by verifyintoto when the artifact digest does not match the digest in the in-toto attestation subject. As a result, verification of DSSE bundles containing in-toto statements returns VerificationSuccess regardless of whether the artifact matches the attested subject.

Details

In lib/sigstore/verifier.rb, the verify method calls verifyintoto (line 176) without capturing or checking its return value:

verifyintoto(input, intoto)

When verifyintoto detects a digest mismatch, it returns a VerificationFailure object. Because the caller discards this return value, execution unconditionally falls through to return VerificationSuccess. This is the only verification sub-check in the method (out of 12) whose failure is not propagated.

The messagesignature code path is not affected.

Impact

An attacker who possesses a valid signed DSSE bundle containing an in-toto attestation for artifact A can present it as a valid attestation for a different artifact B. All other verification checks (DSSE envelope signature, certificate chain, Rekor inclusion, SCTs, policy) pass because they are independent of the artifact content. Only the in-toto subject digest check detects the mismatch, and its result is discarded.

This allows an attacker to bypass artifact-to-attestation binding for any consumer that relies on Sigstore::Verifier#verify to validate DSSE/in-toto bundles.

Workarounds

None. Consumers cannot work around this without patching the library.

Other sources

sigstore-ruby is a pure Ruby implementation of the sigstore verify command from the sigstore/cosign project. Prior to 0.2.3, Sigstore::Verifier#verify does not propagate the VerificationFailure returned by verifyintoto when the artifact digest does not match the digest in the in-toto attestation subject. As a result, verification of DSSE bundles containing in-toto statements returns VerificationSuccess regardless of whether the artifact matches the attested subject. This vulnerability is fixed in 0.2.3.

MITRE

Affected Software

3 affected componentsFixes available
gem/sigstore-ruby<0.2.3
rubygems/sigstore<0.2.3
0.2.3
sigstore Sigstore Ruby<0.2.3

Event History

Mar 10, 2026
CVE Published
via MITRE·09:46 PM
Data Sourced
via MITRE·09:46 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 PM
DescriptionSeverityWeakness
Data Sourced
via NVD·10:16 PM
Affected Software
Mar 11, 2026
Advisory Published
via GitHub·12:24 AM
Data Sourced
via GitHub·12:24 AM
DescriptionSeverityWeaknessAffected Software

Frequently Asked Questions

1

What is the severity of CVE-2026-31830?

CVE-2026-31830 is classified as a vulnerability that allows for verification failures in DSSE bundles due to mismatched subject digests.

2

How do I fix CVE-2026-31830?

To fix CVE-2026-31830, upgrade sigstore-ruby to version 0.2.3 or later to ensure proper verification of DSSE bundles.

3

What versions of sigstore-ruby are affected by CVE-2026-31830?

CVE-2026-31830 affects all versions of sigstore-ruby prior to 0.2.3.

4

What is the impact of CVE-2026-31830?

The impact of CVE-2026-31830 is that it allows incorrect verification results, potentially leading to unverified or malicious signatures being accepted.

5

Is CVE-2026-31830 a false positive issue?

No, CVE-2026-31830 is not a false positive; it represents a genuine risk of security verification failure.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203