Skip to content

fix(deps): update module github.com/sigstore/cosign/v2 to v3 [security] (alauda-v0.43.0) - autoclosed - #59

Closed
alaudaa-renovate[bot] wants to merge 1 commit into
alauda-v0.43.0from
renovate/alauda-v0.43.0-go-github.com-sigstore-cosign-v2-vulnerability
Closed

fix(deps): update module github.com/sigstore/cosign/v2 to v3 [security] (alauda-v0.43.0) - autoclosed#59
alaudaa-renovate[bot] wants to merge 1 commit into
alauda-v0.43.0from
renovate/alauda-v0.43.0-go-github.com-sigstore-cosign-v2-vulnerability

Conversation

@alaudaa-renovate

@alaudaa-renovate alaudaa-renovate Bot commented Jan 13, 2026

Copy link
Copy Markdown

This PR contains the following updates:

Package Change Age Confidence
github.com/sigstore/cosign/v2 v2.6.1 -> v3.0.0 age confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.

GitHub Vulnerability Alerts

CVE-2026-22703

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>

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 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).


Release Notes

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

v3.0.0

Compare Source

Announcing the next major release of Cosign!

Cosign v3 is a minor change from Cosign v2.6.x, with all of the new capabilities of recent
releases on by default, but will still allow you to disable them if you need the older functionality.
These new features include support for the standardized bundle format (--new-bundle-fomat), providing roots
of trust for verification and service URLs for signing via one file (--trusted-root, --signing-config),
and container signatures stored as an OCI Image 1.1 referring artifact.

Learn more on our v3 announcement blog post! See
the changelogs for v2.6.0, v2.5.0, and v2.4.0 for more information on recent
changes.

If you have any feedback, please reach out on Slack or file an issue on GitHub.

Changes

  • Default to using the new protobuf format (#​4318)
  • Fetch service URLs from the TUF PGI signing config by default (#​4428)
  • Bump module version to v3 for Cosign v3.0 (#​4427)

Configuration

📅 Schedule: Branch creation - "" in timezone Asia/Shanghai, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, 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 Renovate Bot.

@alaudaa-renovate

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/go-openapi/analysis v0.23.0 -> v0.24.0
github.com/go-openapi/errors v0.22.2 -> v0.22.3
github.com/go-openapi/jsonpointer v0.21.0 -> v0.22.1
github.com/go-openapi/jsonreference v0.21.0 -> v0.21.2
github.com/go-openapi/loads v0.22.0 -> v0.23.1
github.com/go-openapi/runtime v0.28.0 -> v0.29.0
github.com/go-openapi/spec v0.21.0 -> v0.22.0
github.com/go-openapi/strfmt v0.23.0 -> v0.24.0
github.com/go-openapi/swag v0.24.1 -> v0.25.1
github.com/go-openapi/swag/cmdutils v0.24.0 -> v0.25.1
github.com/go-openapi/swag/conv v0.24.0 -> v0.25.1
github.com/go-openapi/swag/fileutils v0.24.0 -> v0.25.1
github.com/go-openapi/swag/jsonname v0.24.0 -> v0.25.1
github.com/go-openapi/swag/jsonutils v0.24.0 -> v0.25.1
github.com/go-openapi/swag/loading v0.24.0 -> v0.25.1
github.com/go-openapi/swag/mangling v0.24.0 -> v0.25.1
github.com/go-openapi/swag/netutils v0.24.0 -> v0.25.1
github.com/go-openapi/swag/stringutils v0.24.0 -> v0.25.1
github.com/go-openapi/swag/typeutils v0.24.0 -> v0.25.1
github.com/go-openapi/swag/yamlutils v0.24.0 -> v0.25.1
github.com/go-openapi/validate v0.24.0 -> v0.25.0
github.com/prometheus/procfs v0.16.1 -> v0.17.0
github.com/sirupsen/logrus v1.9.3 -> v1.9.4-0.20230606125235-dd1b4c2e81af
gitlab.com/gitlab-org/api/client-go v0.143.3 -> v0.148.1

@alaudaa-renovate alaudaa-renovate Bot changed the title fix(deps): update module github.com/sigstore/cosign/v2 to v3 [security] (alauda-v0.43.0) fix(deps): update module github.com/sigstore/cosign/v2 to v3 [security] (alauda-v0.43.0) - autoclosed Jan 15, 2026
@alaudaa-renovate alaudaa-renovate Bot closed this Jan 15, 2026
@alaudaa-renovate
alaudaa-renovate Bot deleted the renovate/alauda-v0.43.0-go-github.com-sigstore-cosign-v2-vulnerability branch January 15, 2026 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant