airvzxf / airvzxf/ftp-deployment-action

fix(release): cosign sign lacks --certificate-identity binding

Open Beginner friendly
#248 1 comment 0 reactions 0 assignees View on GitHub
area:workflows audit pending-design pending-human priority:high security
Dominant language
Shell
Stars
37
Forks
9
Avg merge
44m
Merged PRs (30d)
47

Description

## Summary
The cosign sign step in .github/workflows/release.yml (line 541) does NOT pass --certificate-identity or --certificate-identity-regexp. Today only release.yml has id-token: write, but if a future workflow file with id-token: write runs cosign sign --yes, the resulting Fulcio certificate has a different sub (= different workflow_ref). Any verifier that runs cosign verify without --certificate-identity will accept both signatures as valid — asymmetric with actions/attest which DOES bind the certificate identity to the workflow_ref automatically.

## Suggested fix
```yaml
cosign sign --yes \
--certificate-identity "https://github.com/${GITHUB_REPOSITORY}/.github/workflows/release.yml@refs/tags/${TAG}" \
--certificate-oidc-issuer "https://token.actions.githubusercontent.com" \
"${{ steps.meta.outputs.image }}@${DIGEST}"
```

## Source
F2 audit round (post-v2.11.3 release).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at .github/workflows/release.yml around line 541 and inspect the cosign sign step. Apply the suggested certificate identity and OIDC issuer arguments for the release tag workflow, then validate the workflow syntax and confirm the signing command still targets the image digest.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, shell
Domain
ci-cd, release, security
Issue type
Bug
Difficulty
1/5
Estimated time
Under an hour
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
88/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.