← Back to results
Vulnerability record · public intelligence
CVE-2026-31830
HIGH

sigstore-ruby verifier returns success for DSSE bundles with mismatched in-toto subject digest

Published Mar 10, 2026 · Updated Nov 3, 2026

Severity · CVSSHIGH · Not scored
Known exploitationNot listed
EPSS / likelihood0.25%
QFinch risk scoreNot available

Original summary

Normalized public record · Updated Nov 3, 2026

sigstore-ruby verifier returns success for DSSE bundles with mismatched in-toto subject digest

Publisher and source text is retained separately from QFinch interpretation.

QFinch assessment

Sigstore::Verifierverify 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.

Potential 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::Verifierverify to validate DSSE/in-toto bundles.

Technical context

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.

Evidence: public source records

Affected products

Affected scope reported by the available public evidence
Affected package, product or rangeFix status
Consult the referenced vendor advisory for affected versions.Consult source advisory

Matching a version is only one part of assessing exposure. QFinch has not assessed your environment on this public page.

Remediation

Apply the vendor-supported fixed release or mitigation, then verify the affected component is no longer reachable.

  1. Confirm the affected product and reachable code path exist in your environment.
  2. Apply the vendor-supported patch or mitigation from the primary advisory.
  3. Rescan the exact deployed revision and retain verification evidence.
Review primary references

Evidence coverage

FIRST-EPSSCVE-LIST-V5
SSVC priority
MEDIUM
Confidence
Not available
Aliases
None reported

Scores appear only when corresponding evidence exists. Missing data is never interpreted as zero risk.

Sources and record history

  1. Security advisory ↗

Record history

Published Mar 10, 2026 · Last refreshed Nov 3, 2026