Repository navigation
ci: pin third-party actions to commit SHA (supply-chain hardening) - #4393
camgrimsec wants to merge 1 commit into
Conversation
Pins all GitHub Actions references in .github/workflows/ to a full 40-character commit SHA, with the original tag preserved as a trailing comment. This protects CI from a compromised tag — the same class of attack used in the tj-actions/changed-files compromise (CVE-2025-30066, March 2025), where a malicious commit was force-pushed to a mutable tag and stole secrets from every workflow that consumed it. GitHub's own hardening guidance recommends pinning third-party actions to a full commit SHA for exactly this reason: https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions Scope: - claude.yml : 2 pins - python.yml : 10 pins - readme-pr-check.yml: 2 pins - release.yml : 13 pins - typescript.yml : 7 pins Total: 34 references across 5 workflows, 10 unique actions. All pinned SHAs resolved from the tag's current commit object via the GitHub REST API on 2026-06-20. No behavior change: SHAs were resolved from the same refs the workflows currently use (e.g. @v6 → SHA of v6 tag's commit). Dependabot can still bump these — it understands the 'SHA + trailing version comment' pattern and will open PRs to update to the next SHA when a new tag is published.
|
Thank you for this pull request, and apologies for the long wait for a response. Since it was opened, the reference servers have been rebuilt for the 2026-07-28 MCP specification (#4857) and released as v2 (2.0.0 on npm for the TypeScript servers, 2026.10.19 on PyPI for the Python servers). The code this PR changes has been replaced, and the behavior it addresses has either been fixed in v2 or no longer exists in the same form. This is not a judgment on the change or on you; it's a consequence of the code it targets having been replaced. If the problem still happens on v2, please open a fresh issue with the version you're running and steps to reproduce. Note that this repository now accepts contributions as issues rather than pull requests from anyone but its maintainers; see This is part of the backlog triage in #4875. |
Pins all GitHub Actions references in .github/workflows/ to a full 40-character commit SHA, with the original tag preserved as a trailing comment. This protects CI from a compromised tag — the same class of attack used in the tj-actions/changed-files compromise (CVE-2025-30066, March 2025), where a malicious commit was force-pushed to a mutable tag and stole secrets from every workflow that consumed it.
GitHub's own hardening guidance recommends pinning third-party actions to a full commit SHA for exactly this reason:
https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-third-party-actions
Scope:
Total: 34 references across 5 workflows, 10 unique actions.
All pinned SHAs resolved from the tag's current commit object via the GitHub REST API on 2026-06-20. No behavior change: SHAs were resolved from the same refs the workflows currently use (e.g. @v6 → SHA of v6 tag's commit).
Dependabot can still bump these — it understands the 'SHA + trailing version comment' pattern and will open PRs to update to the next SHA when a new tag is published.
Description
Publishing Your Server
Note: We are no longer accepting PRs to add servers to the README. Instead, please publish your server to the MCP Server Registry to make it discoverable to the MCP ecosystem.
To publish your server, follow the quickstart guide. You can browse published servers at https://registry.modelcontextprotocol.io/.
Server Details
Motivation and Context
How Has This Been Tested?
Breaking Changes
Types of changes
Checklist
Additional context