Skip to content

ci: don't persist GITHUB_TOKEN in checkout (SEC-844) - #290

Draft
Matt Sutkus (msuitcase) wants to merge 1 commit into
masterfrom
sec-842/persist-credentials
Draft

Matt Sutkus (msuitcase) wants to merge 1 commit into
masterfrom
sec-842/persist-credentials

Conversation

@msuitcase

Copy link
Copy Markdown

What

Adds persist-credentials: false to every actions/checkout step in ci.yml.

Why

By default, actions/checkout writes the job's GITHUB_TOKEN into .git/config and leaves it there for the rest of the job. Every later step can read it: module downloads, golangci-lint, and tests. A compromised dependency or action could then use the token to push code or tamper with releases. Nothing in this workflow needs git credentials after checkout.

Stack

  1. This PR: persist-credentials: false
  2. Next PR (based on this branch): least-privilege permissions:

Part of SEC-842 (org-wide rollout).

actions/checkout writes the job token into .git/config by default, where
any later step (module downloads, golangci-lint, tests) can read it.
Nothing in this workflow needs git credentials after checkout.

Refs SEC-844
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