Skip to content

Commit 5decaad

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 ec02895 commit 5decaad

File tree

3 files changed

+18
-15
lines changed

3 files changed

+18
-15
lines changed

.github/workflows/auto-tag.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
permissions:
1313
contents: write
1414
steps:
15-
- uses: actions/checkout@v4
15+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
1616
with:
1717
fetch-depth: 2
1818
persist-credentials: false

.github/workflows/release.yml

Lines changed: 4 additions & 4 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: |
@@ -45,11 +45,11 @@ jobs:
4545
run:
4646
shell: bash
4747
steps:
48-
- uses: actions/checkout@v4
49-
- uses: dtolnay/rust-toolchain@stable
48+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
49+
- uses: dtolnay/rust-toolchain@3c5f7ea28cd621ae0bf5283f0e981fb97b8a7af9 # stable
5050
with:
5151
targets: ${{ matrix.target }}
52-
- uses: Swatinem/rust-cache@v2
52+
- uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
5353

5454
- name: Build
5555
run: cargo build --release --target ${{ matrix.target }}

.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)