Skip to content

Commit d1a54cc

Browse files
sionsmithclaude
andcommitted
fix: pin GitHub Actions to immutable commit SHAs
Mitigates supply chain attacks via tag mutation (CVE-2025-30066) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 61c5489 commit d1a54cc

3 files changed

Lines changed: 22 additions & 16 deletions

File tree

.github/workflows/auto-tag.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,16 @@ on:
66
paths:
77
- Cargo.toml
88

9+
permissions:
10+
contents: write
11+
912
jobs:
1013
tag:
1114
runs-on: ubuntu-latest
1215
permissions:
1316
contents: write
1417
steps:
15-
- uses: actions/checkout@v4
18+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
1619
with:
1720
fetch-depth: 2
1821
persist-credentials: false

.github/workflows/release.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
create-release:
1313
runs-on: ubuntu-latest
1414
steps:
15-
- uses: actions/checkout@v4
15+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
1616

1717
- name: Extract changelog
1818
run: |
@@ -47,11 +47,11 @@ jobs:
4747
run:
4848
shell: bash
4949
steps:
50-
- uses: actions/checkout@v4
51-
- uses: dtolnay/rust-toolchain@stable
50+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
51+
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
5252
with:
5353
targets: ${{ matrix.target }}
54-
- uses: Swatinem/rust-cache@v2
54+
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
5555

5656
- name: Install cross-compilation tools
5757
if: matrix.target == 'aarch64-unknown-linux-gnu'
@@ -151,7 +151,7 @@ jobs:
151151
runs-on: ubuntu-latest
152152
steps:
153153
- name: Trigger Scoop bucket update
154-
uses: peter-evans/repository-dispatch@v3
154+
uses: peter-evans/repository-dispatch@ff45666b9427631e3450c54a1bcbee4d9ff4d7c0 # v3
155155
with:
156156
token: ${{ secrets.SCOOP_BUCKET_TOKEN }}
157157
repository: osodevops/scoop-bucket

.github/workflows/test.yml

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ on:
66
pull_request:
77
branches: [main]
88

9+
permissions:
10+
contents: read
11+
912
env:
1013
CARGO_TERM_COLOR: always
1114
RUSTFLAGS: -D warnings
@@ -15,8 +18,8 @@ jobs:
1518
name: Format
1619
runs-on: ubuntu-latest
1720
steps:
18-
- uses: actions/checkout@v4
19-
- uses: dtolnay/rust-toolchain@stable
21+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
22+
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
2023
with:
2124
components: rustfmt
2225
- run: cargo fmt --all -- --check
@@ -25,11 +28,11 @@ jobs:
2528
name: Clippy
2629
runs-on: ubuntu-latest
2730
steps:
28-
- uses: actions/checkout@v4
29-
- uses: dtolnay/rust-toolchain@stable
31+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
32+
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
3033
with:
3134
components: clippy
32-
- uses: Swatinem/rust-cache@v2
35+
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
3336
- run: cargo clippy --all-targets -- -D warnings
3437

3538
test:
@@ -39,16 +42,16 @@ jobs:
3942
matrix:
4043
os: [ubuntu-latest, macos-latest, windows-latest]
4144
steps:
42-
- uses: actions/checkout@v4
43-
- uses: dtolnay/rust-toolchain@stable
44-
- uses: Swatinem/rust-cache@v2
45+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
46+
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
47+
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
4548
- run: cargo test --all-targets
4649

4750
audit:
4851
name: Security Audit
4952
runs-on: ubuntu-latest
5053
steps:
51-
- uses: actions/checkout@v4
52-
- uses: rustsec/audit-check@v2
54+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
55+
- uses: rustsec/audit-check@69366f33c96575abad1ee0dba8212993eecbe998 # v2
5356
with:
5457
token: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)