Repository navigation
Conversation
4f36d51 to
7fe3aab
Compare
rdimitrov
left a comment
There was a problem hiding this comment.
Reviewed all three workflow variants and implemented a follow-up replacing regex identity matching with exact --certificate-identity matching. This binds verification to the selected release tag without treating dots as regex wildcards.
Validated the real v1.8.1 Linux amd64 archive and bundle with Cosign v3.0.6, whose bootstrap checksum matches the SHA-pinned installer action. All three YAML examples parse and have identical Bash installers. Executed the updated installer against the real Darwin arm64 assets: signature verification, extraction, and cleanup succeed. Negative checks reject a tampered archive, wrong tag identity, and wrong OIDC issuer. make validate and git diff --check pass.
No runtime API or authentication changes. This addresses the pinned, verified installer in #1505; job separation and broader action pinning are separate hardening choices. Merge conditional on required CI passing on this exact head.
Motivation and Context
Fixes #1505.
The GitHub Actions publishing guide downloaded
mcp-publisherthrough the mutablereleases/latestURL and extracted it without checking the published Sigstore bundle. The three credential-bearing examples now pin the release tov1.8.1, download the archive and its bundle separately, verify the release workflow identity and GitHub Actions OIDC issuer withcosign verify-blob, and extract only after verification.How Has This Been Tested?
v1.8.1Linux amd64 archive against its published Sigstore bundle with cosign v3.0.6 (the version installed by the pinned cosign-installer action); verification returnedVerified OK.git diff --check.Breaking Changes
None. This only hardens the documented installer workflow; existing registry APIs and authentication commands are unchanged.
Types of changes
Checklist
Additional context
The release version is intentionally explicit so upgrades are reviewable. The Sigstore certificate identity is constrained to this repository's release workflow and the selected tag.