Skip to content

Update module github.com/sigstore/cosign/v2 to v2.6.3 [SECURITY] - #364

Open
renovate-update-app[bot] wants to merge 1 commit into
masterfrom
renovate/go-github.com-sigstore-cosign-v2-vulnerability
Open

renovate-update-app[bot] wants to merge 1 commit into
masterfrom
renovate/go-github.com-sigstore-cosign-v2-vulnerability

Conversation

@renovate-update-app

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Confidence
github.com/sigstore/cosign/v2 v2.2.4 → v2.6.3 age confidence

Warning

Some dependencies could not be looked up. Check the warning logs for more information.


Cosign verification accepts any valid Rekor entry under certain conditions

CVE-2026-22703 / GHSA-whqx-f9j3-ch6m

More information

Details

Impact

A Cosign bundle can be crafted to successfully verify an artifact even if the embedded Rekor entry does not reference the artifact's digest, signature or public key. When verifying a Rekor entry, Cosign verifies the Rekor entry signature, and also compares the artifact's digest, the user's public key from either a Fulcio certificate or provided by the user, and the artifact signature to the Rekor entry contents. Without these comparisons, Cosign would accept any response from Rekor as valid. A malicious actor that has compromised a user's identity or signing key could construct a valid Cosign bundle by including any arbitrary Rekor entry, thus preventing the user from being able to audit the signing event.

This vulnerability only affects users that provide a trusted root via --trusted-root or when fetched automatically from a TUF repository, when no trusted key material is provided via SIGSTORE_REKOR_PUBLIC_KEY. When using the default flag values in Cosign v3 to sign and verify (--use-signing-config=true and --new-bundle-format=true for signing, --new-bundle-format=true for verification), users are unaffected. Cosign v2 users are affected using the default flag values.

This issue had previously been fixed in GHSA-8gw7-4j42-w388 but recent refactoring caused a regression. We have added testing to prevent a future regression.

Steps to Reproduce
echo blob > /tmp/blob
cosign sign-blob -y --new-bundle-format=false --bundle /tmp/bundle.1 --use-signing-config=false /tmp/blob
cosign sign-blob -y --new-bundle-format=false --bundle /tmp/bundle.2 --use-signing-config=false /tmp/blob
jq ".rekorBundle |= $(jq .rekorBundle /tmp/bundle.2)" /tmp/bundle.1 > /tmp/bundle.3
cosign verify-blob --bundle /tmp/bundle.3 --certificate-identity-regexp='.*' --certificate-oidc-issuer-regexp='.*' /tmp/blob
Patches

Upgrade to Cosign v2.6.2 or Cosign v3.0.4. This does not affect Cosign v1.

Workarounds

You can provide trusted key material via a set of flags under certain conditions. The simplest fix is to upgrade to the latest Cosign v2 or v3 release.

Note that the example below works for cosign verify, cosign verify-blob, cosign verify-blob-attestation, and cosign verify-attestation`.

SIGSTORE_REKOR_PUBLIC_KEY=<path to Rekor pub key> cosign verify-blob --use-signing-config=false --new-bundle-format=false --bundle=<path to bundle> <artifact>

Severity

  • CVSS Score: 5.5 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N

References

This data is provided by the GitHub Advisory Database (CC-BY 4.0).


Cosign verification accepts any valid Rekor entry under certain conditions

BIT-cosign-2026-22703 / CVE-2026-22703 / GHSA-whqx-f9j3-ch6m / GO-2026-4309

More information

Details

Impact

A Cosign bundle can be crafted to successfully verify an artifact even if the embedded Rekor entry does not reference the artifact's digest, signature or public key. When verifying a Rekor entry, Cosign verifies the Rekor entry signature, and also compares the artifact's digest, the user's public key from either a Fulcio certificate or provided by the user, and the artifact signature to the Rekor entry contents. Without these comparisons, Cosign would accept any response from Rekor as valid. A malicious actor that has compromised a user's identity or signing key could construct a valid Cosign bundle by including any arbitrary Rekor entry, thus preventing the user from being able to audit the signing event.

This vulnerability only affects users that provide a trusted root via --trusted-root or when fetched automatically from a TUF repository, when no trusted key material is provided via SIGSTORE_REKOR_PUBLIC_KEY. When using the default flag values in Cosign v3 to sign and verify (--use-signing-config=true and --new-bundle-format=true for signing, --new-bundle-format=true for verification), users are unaffected. Cosign v2 users are affected using the default flag values.

This issue had previously been fixed in GHSA-8gw7-4j42-w388 but recent refactoring caused a regression. We have added testing to prevent a future regression.

Steps to Reproduce
echo blob > /tmp/blob
cosign sign-blob -y --new-bundle-format=false --bundle /tmp/bundle.1 --use-signing-config=false /tmp/blob
cosign sign-blob -y --new-bundle-format=false --bundle /tmp/bundle.2 --use-signing-config=false /tmp/blob
jq ".rekorBundle |= $(jq .rekorBundle /tmp/bundle.2)" /tmp/bundle.1 > /tmp/bundle.3
cosign verify-blob --bundle /tmp/bundle.3 --certificate-identity-regexp='.*' --certificate-oidc-issuer-regexp='.*' /tmp/blob
Patches

Upgrade to Cosign v2.6.2 or Cosign v3.0.4. This does not affect Cosign v1.

Workarounds

You can provide trusted key material via a set of flags under certain conditions. The simplest fix is to upgrade to the latest Cosign v2 or v3 release.

Note that the example below works for cosign verify, cosign verify-blob, cosign verify-blob-attestation, and cosign verify-attestation`.

SIGSTORE_REKOR_PUBLIC_KEY=<path to Rekor pub key> cosign verify-blob --use-signing-config=false --new-bundle-format=false --bundle=<path to bundle> <artifact>

Severity

  • CVSS Score: 5.5 / 10 (Medium)
  • Vector String: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:N

References

This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).


Cosign verification accepts any valid Rekor entry under certain conditions in github.com/sigstore/cosign

BIT-cosign-2026-22703 / CVE-2026-22703 / GHSA-whqx-f9j3-ch6m / GO-2026-4309

More information

Details

Cosign verification accepts any valid Rekor entry under certain conditions in github.com/sigstore/cosign

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Cosign's verify-blob-attestation reports false positive when payload parsing fails in github.com/sigstore/cosign

BIT-cosign-2026-39395 / CVE-2026-39395 / GHSA-w6c6-c85g-mmv6 / GO-2026-5694

More information

Details

Cosign's verify-blob-attestation reports false positive when payload parsing fails in github.com/sigstore/cosign

Severity

Unknown

References

This data is provided by OSV and the Go Vulnerability Database (CC-BY 4.0).


Release Notes

sigstore/cosign (github.com/sigstore/cosign/v2)

v2.6.3

Compare Source

Changelog

v2.6.3 resolves GHSA-w6c6-c85g-mmv6.

Thanks to all contributors!

v2.6.2

Compare Source

v2.6.2 resolves GHSA-whqx-f9j3-ch6m.

Changes

v2.6.1

Compare Source

Bug Fixes

  • Partially populate the output of cosign verify when working with new bundles (#​4416)
  • Bump sigstore-go, move conformance back to tagged release (#​4426)

v2.6.0

Compare Source

v2.6.0 introduces a number of new features, including:

  • Signing an in-toto statement rather than Cosign constructing one from a predicate, along with verifying a statement's subject using a digest and digest algorithm rather than providing a file reference (#​4306)
  • Uploading a signature and its verification material (a "bundle") as an OCI Image 1.1 referring artifact, completing #​3927 (#​4316)
  • Providing service URLs for signing and attesting using a SigningConfig. Note that this is required when using a Rekor v2 instance (#​4319)

Example generation and verification of a signed in-toto statement:

cosign attest-blob --new-bundle-format=true --bundle="digest-key-test.sigstore.json" --key="cosign.key" --statement="../sigstore-go/examples/sigstore-go-signing/intoto.txt"
cosign verify-blob-attestation --bundle="digest-key-test.sigstore.json" --key=cosign.pub --type=unused --digest="b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9" --digestAlg="sha256"

Example container signing and verification using the new bundle format and referring artifacts:

cosign sign --new-bundle-format=true ghcr.io/user/alpine@sha256:a19367999603840546b8612572e338ec076c6d1f2fec61760a9e11410f546733
cosign verify --new-bundle-format=true ghcr.io/user/alpine@sha256:a19367999603840546b8612572e338ec076c6d1f2fec61760a9e11410f546733

Example usage of a signing config provided by the public good instance's TUF repository:

cosign sign-blob --use-signing-config --bundle sigstore.json README.md
cosign verify-blob --new-bundle-format --bundle sigstore.json --certificate-identity $EMAIL --certificate-oidc-issuer $ISSUER --use-signed-timestamps README.md

v2.6.0 leverages sigstore-go's signing and verification APIs gated behind these new flags. In an upcoming major release, we will be
updating Cosign to default to producing and consuming bundles to align with all other Sigstore SDKs.

Features

  • Add to attest-blob the ability to supply a complete in-toto statement, and add to verify-blob-attestation the ability to verify with just a digest (#​4306)
  • Have cosign sign support bundle format (#​4316)
  • Add support for SigningConfig for sign-blob/attest-blob, support Rekor v2 (#​4319)
  • Add support for SigningConfig in sign/attest (#​4371)
  • Support self-managed keys when signing with sigstore-go (#​4368)
  • Don't require timestamps when verifying with a key (#​4337)
  • Don't load content from TUF if trusted root path is specified (#​4347)
  • Add a terminal spinner while signing with sigstore-go (#​4402)
  • Require exclusively a SigningConfig or service URLs when signing (#​4403)
  • Remove SHA256 assumption in sign-blob/verify-blob (#​4050)
  • Bump sigstore-go, support alternative hash algorithms with keys (#​4386)

Breaking API Changes

  • sign.SignerFromKeyOpts no longer generates a key. Instead, it returns whether or not the client needs to generate a key, and if so, clients
    should call sign.KeylessSigner. This allows clients to more easily manage key generation.

Bug Fixes

  • Verify subject with bundle only when checking claims (#​4320)
  • Fixes to cosign sign / verify for the new bundle format (#​4346)

v2.5.3

Compare Source

Features

  • Add signing-config create command (#​4280)
  • Allow multiple services to be specified for trusted-root create (#​4285)
  • feat: Add OCI 1.1+ experimental support to tree (#​4205)
  • Add validity period end for trusted-root create (#​4271)

Bug Fixes

  • Fix cert verification logic for trusted-root/SCTs (#​4294)
  • force when copying the latest image to overwrite (#​4298)
  • avoid double-loading trustedroot from file (#​4264)

v2.5.2

Compare Source

Bug Fixes

  • Do not load trusted root when CT env key is set

Documentation

  • docs: improve doc for --no-upload option (#​4206)

v2.5.1

Compare Source

Features

  • Add Rekor v2 support for trusted-root create (#​4242)
  • Add baseUrl and Uri to trusted-root create command
  • Upgrade to TUF v2 client with trusted root
  • Don't verify SCT for a private PKI cert (#​4225)
  • Bump TSA library to relax EKU chain validation rules (#​4219)

Bug Fixes

  • Bump sigstore-go to pick up log index=0 fix (#​4162)
  • remove unused recursive flag on attest command (#​4187)

Docs

  • Fix indentation in verify-blob cmd examples (#​4160)

Releases

  • ensure we copy the latest tags on each release (#​4157)

Contributors

  • arthurus-rex
  • Babak K. Shandiz
  • Bob Callaway
  • Carlos Tadeu Panato Junior
  • Colleen Murphy
  • Dmitry Savintsev
  • Emmanuel Ferdman
  • Hayden B
  • Ville Skyttä

v2.5.0

Compare Source

v2.5.0 includes an implementation of the new bundle specification,
attesting and verifying OCI image attestations uploaded as OCI artifacts.
This feature is currently gated behind the --new-bundle-format flag
when running cosign attest.

Features

  • Add support for new bundle specification for attesting/verifying OCI image attestations (#​3889)
  • Feat/non filename completions (#​4115)
  • Add TSA certificate related flags and fields for cosign attest (#​4079)

Fixes

  • cmd/cosign/cli: fix typo in ignoreTLogMessage (#​4111)
  • Fix replace with compliant image mediatype (#​4077)

Contributors

  • Bob Callaway
  • Carlos Tadeu Panato Junior
  • Cody Soyland
  • Dmitry Savintsev
  • Hayden B
  • Ramon Petgrave
  • Riccardo Schirone
  • Stef Graces
  • Ville Skyttä

v2.4.3

Compare Source

Features

  • Bump sigstore/sigstore to support KMS plugins (#​4073)
  • Enable fetching signatures without remote get. (#​4047)
  • Feat/file flag completion improvements (#​4028)
  • Update builder to use go1.23.6 (#​4052)

Bug Fixes

  • fix parsing error in --only for cosign copy (#​4049)

Cleanup

  • Refactor verifyNewBundle into library function (#​4013)
  • fix comment typo and imports order (#​4061)
  • sync comment with parameter name in function signature (#​4063)
  • sort properly Go imports (#​4071)

Contributors

  • Bob Callaway
  • Carlos Tadeu Panato Junior
  • Cody Soyland
  • Dmitry Savintsev
  • Hayden B
  • Tomasz Janiszewski
  • Ville Skyttä

v2.4.2

Compare Source

Features

  • Updated open-policy-agent to 1.1.0 library (#​4036)
    • Note that only Rego v0 policies are supported at this time
  • Add UseSignedTimestamps to CheckOpts, refactor TSA options (#​4006)
  • Add support for verifying root checksum in cosign initialize (#​3953)
  • Detect if user supplied a valid protobuf bundle (#​3931)
  • Add a log message if user doesn't provide --trusted-root (#​3933)
  • Support mTLS towards container registry (#​3922)
  • Add bundle create helper command (#​3901)
  • Add trusted-root create helper command (#​3876)

Bug Fixes

  • fix: set tls config while retaining other fields from default http transport (#​4007)
  • policy fuzzer: ignore known panics (#​3993)
  • Fix for multiple WithRemote options (#​3982)
  • Add nightly conformance test workflow (#​3979)
  • Fix copy --only for signatures + update/align docs (#​3904)

Documentation

  • Remove usage.md from spec, point to client spec (#​3918)
  • move reference from gcr to ghcr (#​3897)

Contributors

  • AdamKorcz
  • Aditya Sirish
  • Bob Callaway
  • Carlos Tadeu Panato Junior
  • Cody Soyland
  • Colleen Murphy
  • Hayden B
  • Jussi Kukkonen
  • Marco Franssen
  • Nianyu Shen
  • Slavek Kabrda
  • Søren Juul
  • Warren Hodgkinson
  • Zach Steindler

v2.4.1

Compare Source

v2.4.1 largely contains bug fixes and updates dependencies.

Features

  • Added fuzzing coverage to multiple packages

Bug Fixes

  • Fix bug in attest-blob when using a timestamp authority with new bundles (#​3877)
  • fix: documentation link for installation guide (#​3884)

Contributors

  • AdamKorcz
  • Bob Callaway
  • Carlos Tadeu Panato Junior
  • Hayden B
  • Hemil K
  • Sota Sugiura
  • Zach Steindler

v2.4.0

Compare Source

v2.4.0 begins the modernization of the Cosign client, which includes:

  • Support for the newer Sigstore specification-compliant bundle format
  • Support for providing trust roots (e.g. Fulcio certificates, Rekor keys)
    through a trust root file, instead of many different flags
  • Conformance test suite integration to verify signing and verification behavior

In future updates, we'll include:

  • General support for the trust root file, instead of only when using the bundle
    format during verification
  • Simplification of trust root flags and deprecation of the
    Cosign-specific bundle format
  • Bundle support with container signing

We have also moved nightly Cosign container builds to GHCR instead of GCR.

Features

  • Add new bundle support to verify-blob and verify-blob-attestation (#​3796)
  • Adding protobuf bundle support to sign-blob and attest-blob (#​3752)
  • Bump sigstore/sigstore to support email_verified as string or boolean (#​3819)
  • Conformance testing for cosign (#​3806)
  • move incremental builds per commit to GHCR instead of GCR (#​3808)
  • Add support for recording creation timestamp for cosign attest (#​3797)
  • Include SCT verification failure details in error message (#​3799)

Contributors

  • Bob Callaway
  • Hayden B
  • Slavek Kabrda
  • Zach Steindler
  • Zsolt Horvath

v2.3.0

Compare Source

Features

  • Add PayloadProvider interface to decouple AttestationToPayloadJSON from oci.Signature interface (#​3693)
  • add registry options to cosign save (#​3645)
  • Add debug providers command. (#​3728)
  • Make config layers in ociremote mountable (#​3741)
  • upgrade to go1.22 (#​3739)
  • adds tsa cert chain check for env var or tuf targets. (#​3600)
  • add --ca-roots and --ca-intermediates flags to 'cosign verify' (#​3464)
  • add handling of keyless verification for all verify commands (#​3761)

Bug Fixes

  • fix: close attestationFile (#​3679)
  • Set bundleVerified to true after Rekor verification (Resolves #​3740) (#​3745)

Documentation

  • Document ImportKeyPair and LoadPrivateKey functions in pkg/cosign (#​3776)

Testing

  • Refactor KMS E2E tests (#​3684)
  • Remove sign_blob_test.sh test (#​3707)
  • Remove KMS E2E test script (#​3702)
  • Refactor insecure registry E2E tests (#​3701)

Contributors

  • Billy Lynch
  • bminahan73
  • Bob Callaway
  • Carlos Tadeu Panato Junior
  • Cody Soyland
  • Colleen Murphy
  • Dmitry Savintsev
  • guangwu
  • Hayden B
  • Hector Fernandez
  • ian hundere
  • Jason Power
  • Jon Johnson
  • Max Lambrecht
  • Meeki1l

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@renovate-update-app

Copy link
Copy Markdown
Author

ℹ️ Artifact update notice

File name: go.mod

In order to perform the update(s) described in the table above, Renovate ran the go get command, which resulted in the following additional change(s):

  • 24 additional dependencies were updated

Details:

Package Change
github.com/golang/mock v1.6.0 -> v1.7.0-rc.1
github.com/hashicorp/go-retryablehttp v0.7.7 -> v0.7.8
github.com/hashicorp/hcl v1.0.1-vault-5 -> v1.0.1-vault-7
github.com/mattn/go-colorable v0.1.13 -> v0.1.14
github.com/spf13/afero v1.11.0 -> v1.15.0
github.com/spf13/cast v1.7.0 -> v1.10.0
google.golang.org/genproto v0.0.0-20240903143218-8af14fe29dc1 -> v0.0.0-20250922171735-9219d122eba9
github.com/cheggaaa/pb/v3 v3.1.5 -> v3.1.6
github.com/containerd/stargz-snapshotter/estargz v0.16.3 -> v0.18.1
github.com/cyberphone/json-canonicalization v0.0.0-20231011164504-785e29786b46 -> v0.0.0-20241213102144-19d51d7fe467
github.com/docker/docker v28.2.2+incompatible -> v28.5.2+incompatible
github.com/google/certificate-transparency-go v1.1.8 -> v1.3.2
github.com/google/go-containerregistry v0.20.6 -> v0.20.7
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a -> v0.0.0-20240606120523-5a60cdf6a761
github.com/jackc/pgx/v5 v5.6.0 -> v5.7.5
github.com/jackc/puddle/v2 v2.2.1 -> v2.2.2
github.com/jellydator/ttlcache/v3 v3.3.0 -> v3.4.0
github.com/letsencrypt/boulder v0.0.0-20231026200631-000cd05d5491 -> v0.20251110.0
github.com/mattn/go-runewidth v0.0.15 -> v0.0.16
github.com/redis/go-redis/v9 v9.5.1 -> v9.14.1
github.com/secure-systems-lab/go-securesystemslib v0.8.0 -> v0.9.1
github.com/sigstore/rekor v1.3.6 -> v1.4.3
github.com/spf13/viper v1.19.0 -> v1.21.0
github.com/vbatts/tar-split v0.12.1 -> v0.12.2

@renovate-update-app
renovate-update-app Bot enabled auto-merge (squash) October 24, 2026 01:32

@renovatee-approver-stackvista renovatee-approver-stackvista Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Auto-approving verified Renovate commits with native automerge enabled.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants