Loading...
Skip to main content

CVE-2026-31830 — Vulnerability in sigstore — CVE Details

HIGH

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

Published March 11, 2026Updated March 19, 2026Source: osv

Summary

### Summary `Sigstore::Verifier#verify` does not propagate the `VerificationFailure` returned by `verify_in_toto` 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 `verify_in_toto` (line 176) without capturing or checking its return value: `verify_in_toto(input, in_toto)` When `verify_in_toto` 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 message_signature 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.

Advisory Timeline

  • First published March 11, 2026 (215 days ago).
  • Last revised March 19, 2026 — 9 days after initial publication.

Remediation

Upgrade to the fixed version using your package manager.

Bundler
Update sigstore to 0.2.3 or later
gem install sigstore -v 0.2.3

After upgrading, run your dependency scanner again to confirm the vulnerability is resolved.

Affected Packages (1)

Affects 1 ecosystem: rubygems (1).

PackageEcosystemAffectedFixed In
sigstore
rubygems
0.1.1, 0.2.0, 0.2.1, 0.2.20.2.3

Vulnerability Classification

Common Weakness Enumeration (CWE) identifiers for this vulnerability type.

CVSS Score Breakdown

What the CVSS (Common Vulnerability Scoring System) 7.5 score means for each attack dimension.

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
None
Scope
Unchanged
Confidentiality
None
Integrity
High
Availability
None

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N

Frequently Asked Questions

What is CVE-2026-31830?
sigstore-ruby verifier returns success for DSSE bundles with mismatched in-toto subject digest This vulnerability has been assigned a severity rating of HIGH (CVSS score: 7.5/10).
How do I check if my project is affected by CVE-2026-31830?
CVE-2026-31830 affects sigstore. Use GeekWala's free vulnerability scanner to check your dependencies against CVE-2026-31830 and 200,000+ other known vulnerabilities.

Severity & Exploitability

CVSS Score
7.5

High exploitability or significant impact. Prioritize remediation within days.

Also Known As

GHSA-mhg6-2q2v-9h2c

Related CVEs

  • CVE-2026-94462
    HIGH

    Spree: Broken Access Control in `PATCH /api/v3/store/carts/:id/associate` (IDOR)

  • CVE-2026-77601
    HIGH

    OpenC3 COSMOS: Authenticated OS command injection via the `pypi_url` setting

Check if you're affected

Scan your dependencies to see if this vulnerability affects your projects.

Scan Your Dependencies