Skip to content

fix(security): verify downloaded release provenance and scope Pages token - #210

Merged
TMHSDigital merged 1 commit into
TMHSDigital:mainfrom
jdotc1:fix/verify-release-provenance-157
Nov 10, 2026
Merged

TMHSDigital merged 1 commit into
TMHSDigital:mainfrom
jdotc1:fix/verify-release-provenance-157

Conversation

@jdotc1

@jdotc1 jdotc1 commented Nov 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Verify the downloaded Subenum release archive with gh attestation verify before extraction in the composite action, adding an authenticity check independent of the adjacent checksum.
  • Limit GitHub Pages workflow permissions to contents: read globally; grant pages: write and id-token: write only to the deployment job.

Closes #157.

Validation

  • YAML parsed successfully with PyYAML.
  • Assertions confirmed the attestation check precedes extraction, Pages build has only read permissions, and Pages deploy alone has write/OIDC permissions.
  • git diff --check — passed.
  • Go tests not executed (no Go compiler in the environment); no Go source changed.

Compatibility: The composite action now rejects older release archives lacking published GitHub attestations; users can select version: source to build from the checked-out source instead.

@TMHSDigital
TMHSDigital merged commit 4183518 into TMHSDigital:main Nov 10, 2026
2 checks passed
TMHSDigital added a commit that referenced this pull request Nov 12, 2026
[Unreleased] was missing the Windows NUL output fix (#208), the -seeds
temp-file fix (#212), the once-per-run wordlist normalization (#182) and
the Action's attestation check with narrowed Pages permissions (#210).
Add them, and add link definitions so the version headings link to
their compare views instead of rendering as bracketed text. Versions
before 0.4.0 have no tags, so they stay unlinked; release-notes.sh still
extracts each section unchanged.

Fixes #231

Co-Authored-By: Claude Opus 5.5 <[email protected]>
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.

Verify release attestation in the Action and scope Pages permissions to the deploy job

2 participants