Skip to content

security: fix audit findings (HIGH/MEDIUM)#29

Open
hinanohart wants to merge 1 commit into
mainfrom
security-fixes-2026-06-10
Open

security: fix audit findings (HIGH/MEDIUM)#29
hinanohart wants to merge 1 commit into
mainfrom
security-fixes-2026-06-10

Conversation

@hinanohart

Copy link
Copy Markdown
Owner

Summary

Security audit fix: pin two GitHub Actions that were referenced by mutable tags to full commit SHAs, restoring consistency with the repo's existing SHA-pinning policy.

Fixes

[MEDIUM] Release workflow used mutable tag refs for two actions

File: .github/workflows/release.yml

The sigstore-attest job runs with permissions: contents: write, id-token: write. Two of its steps referenced actions by mutable major tag while every other step in ci.yml/release.yml is commit-SHA pinned. A retagged or compromised action in that job could exfiltrate the OIDC token.

  • sigstore/cosign-installer@v3 -> sigstore/cosign-installer@2e2f661cd4be3a4b891a882064e49d0fed4b7b88 # v3.9.0 (line 104)
  • actions/upload-artifact@v7 -> actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 (line 119)

SHAs resolved via git ls-remote against the upstream tags. Dependabot (already configured) will keep these fresh.

Verification: zizmor on the original file reported 2 unpinned-uses errors; after the change both are gone. npm test passes (80/80).

Deferred

The following pre-existing zizmor findings in the workflow files were left untouched as they are out of scope for this audit item and fixing them would require unrelated workflow refactors (permission scoping, persist-credentials: false, cache hardening):

  • excessive-permissions (job-level contents: write / id-token: write)
  • artipacked (credential persistence via actions/checkout default persist-credentials)
  • cache-poisoning (runtime artifacts built after a cache-enabled setup-node)

These predate this PR and are not regressions introduced by this change.

Generated with Claude Code (https://claude.com/claude-code)

… SHAs

The sigstore-attest job in release.yml ran two actions pinned by mutable
tag (sigstore/cosign-installer@v3, actions/upload-artifact@v7) while every
other step in ci.yml/release.yml is commit-SHA pinned. That job runs with
contents: write and id-token: write, so a retagged/compromised action could
exfiltrate the OIDC token. Pin both to full commit SHAs with version comments,
consistent with the repo's existing pinning policy. Dependabot will keep them
fresh.

- sigstore/cosign-installer -> 2e2f661cd4be3a4b891a882064e49d0fed4b7b88 # v3.9.0
- actions/upload-artifact   -> 043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant