Skip to content

chore: pin third-party GitHub Actions to commit SHAs#18

Merged
kinyoklion merged 3 commits intomainfrom
security/SEC-7924/pin-github-actions
Mar 30, 2026
Merged

chore: pin third-party GitHub Actions to commit SHAs#18
kinyoklion merged 3 commits intomainfrom
security/SEC-7924/pin-github-actions

Conversation

@pkaeding
Copy link
Copy Markdown
Contributor

@pkaeding pkaeding commented Mar 25, 2026

Summary

Pin all third-party GitHub Actions to full-length commit SHAs to prevent supply chain attacks.

Addresses findings from the third-party-action-not-pinned-to-commit-sha Semgrep rule.

Updates since initial revision

  • Version comments now use fully qualified version numbers (e.g. # v4.4.0 instead of # v4)
  • ruby/setup-ruby bumped from v1.295.0 (319994f...) to v1.299.0 (3ff19f5e2baf30647122352b96108b1fbe250c64), the latest v1 release
  • googleapis/release-please-action confirmed at v4.4.0 (16a9c90856f42705d54a6fda1823352bdc62cf38), already the latest v4 release

Release links for verification:

Review & Testing Checklist for Human

  • Verify the pinned SHAs match the expected release tags using the release links above
  • Confirm CI passes with the updated ruby/setup-ruby v1.299.0 (bumped from v1.295.0)

Notes

  • The slsa-framework/slsa-github-generator reference on line 61 of release-please.yml remains at @v2.0.0 (floating tag) — this action cannot be pinned to a commit SHA.

Note

Low Risk
Low risk: changes only pin GitHub Action references to specific commits, with no functional logic changes beyond potential action version drift if the pinned SHAs differ from the floating tags.

Overview
Pins third-party GitHub Actions to immutable commit SHAs to harden CI/release workflows against supply-chain tampering.

Updates ruby/setup-ruby@v1 usages (composite CI action, Windows CI job, and docs publish workflow) to a specific commit SHA, and similarly pins googleapis/release-please-action@v4 in the release workflow to a specific v4.4.0 commit.

Written by Cursor Bugbot for commit 12e5cd3. This will update automatically on new commits. Configure here.

Link to Devin session: https://app.devin.ai/sessions/56bd3c6eff084ef4802aaa48b08ebab6
Requested by: @kinyoklion

Pin all third-party GitHub Actions to full-length commit SHAs to prevent
supply chain attacks. Addresses findings from the
third-party-action-not-pinned-to-commit-sha Semgrep rule.
@pkaeding pkaeding requested a review from a team as a code owner March 25, 2026 16:56
Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com>
@devin-ai-integration
Copy link
Copy Markdown
Contributor

Version verification for pinned SHAs

googleapis/release-please-action

  • Pinned SHA: 16a9c90856f42705d54a6fda1823352bdc62cf38
  • Resolved version: v4.4.0
  • Latest v4 release: v4.4.0
  • SHA matches the latest v4 release. Comment updated to # v4.4.0.

ruby/setup-ruby

  • Pinned SHA: 319994f95fa847cf3fb3cd3dbe89f6dcde9f178f
  • Resolved version: v1.295.0
  • Latest v1 release: v1.299.0 (SHA: 3ff19f5e2baf30647122352b96108b1fbe250c64)
  • ⚠️ SHA does NOT match the latest v1 release. The pinned commit is v1.295.0, but the latest is v1.299.0. Consider updating to the latest.

@kinyoklion
Copy link
Copy Markdown
Member

Devin, go ahead and update ruby/setup-ruby to 1.299.0, update the SHA and the comment.

Co-Authored-By: rlamb@launchdarkly.com <4955475+kinyoklion@users.noreply.github.com>
@kinyoklion kinyoklion merged commit 84b7aca into main Mar 30, 2026
9 checks passed
@kinyoklion kinyoklion deleted the security/SEC-7924/pin-github-actions branch March 30, 2026 17:00
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.

2 participants