Skip to content

Commit 910d809

Browse files
chore: pin GitHub Actions to commit SHAs (#79)
## Pin GitHub Actions to commit SHAs GitHub Actions referenced by tag (e.g. `actions/checkout@v4`) use a mutable pointer — the tag owner can move it to a different commit at any time, including a malicious one. This is the attack vector used in the tj-actions/changed-files incident (CVE-2025-30066). Pinning to a full 40-character commit SHA makes the reference immutable. The `# tag` comment preserves human readability so reviewers can tell which version is pinned. Important: a SHA can also originate from a forked repository. A malicious actor can fork an action, push a compromised commit to the fork, and the SHA will resolve — but it won't exist in the upstream canonical repo. Each SHA in this PR was verified against the action's canonical repository (not a fork). ### Changes - `actions/checkout@v5` -> `actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1` - Version: v5.0.1 | Latest: v6.0.2 | Release age: 89d - Commit: actions/checkout@93cb6ef - `jdx/mise-action@v3` -> `jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db # v3.6.3` - Version: v3.6.3 | Latest: v4.0.1 | Release age: 17d - Commit: jdx/mise-action@5228313 - `actions/setup-node@v6` -> `actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0` - Version: v6.3.0 | Latest: v6.3.0 | Release age: 36d - Commit: actions/setup-node@53b8394 ### Files modified - `.github/workflows/ci.yml` - `.github/workflows/publish.yml`
1 parent 52cdaa3 commit 910d809

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

.github/workflows/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ jobs:
99
build:
1010
runs-on: ubuntu-latest
1111
steps:
12-
- uses: actions/checkout@v5
13-
- uses: jdx/mise-action@v3
12+
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
13+
- uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db # v3.6.3
1414
- name: Install OS dependencies
1515
run: |
1616
sudo apt-get update
@@ -21,16 +21,16 @@ jobs:
2121
format:
2222
runs-on: ubuntu-latest
2323
steps:
24-
- uses: actions/checkout@v5
25-
- uses: jdx/mise-action@v3
24+
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
25+
- uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db # v3.6.3
2626
- run: pnpm install
2727
- run: pnpm prettier --check .
2828

2929
test:
3030
runs-on: ubuntu-latest
3131
steps:
32-
- uses: actions/checkout@v5
33-
- uses: jdx/mise-action@v3
32+
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
33+
- uses: jdx/mise-action@5228313ee0372e111a38da051671ca30fc5a96db # v3.6.3
3434
- name: Install wasm32 target
3535
run: rustup target add wasm32-unknown-unknown
3636
- name: Install OS dependencies

.github/workflows/publish.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ jobs:
2525
id-token: write
2626
steps:
2727
- name: Checkout
28-
uses: actions/checkout@v5
29-
- uses: actions/setup-node@v6
28+
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
29+
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
3030
with:
3131
node-version: "24"
3232
registry-url: "https://registry.npmjs.org"
@@ -55,8 +55,8 @@ jobs:
5555
id-token: write
5656
steps:
5757
- name: Checkout
58-
uses: actions/checkout@v5
59-
- uses: actions/setup-node@v6
58+
uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
59+
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
6060
with:
6161
node-version: "24"
6262
registry-url: "https://registry.npmjs.org"

0 commit comments

Comments
 (0)