Skip to content

fix: supply chain hardening — pin actions, images, and fix secret logging#499

Merged
wshobson merged 1 commit intowshobson:mainfrom
thc1006:fix/supply-chain-hardening-v2
Apr 26, 2026
Merged

fix: supply chain hardening — pin actions, images, and fix secret logging#499
wshobson merged 1 commit intowshobson:mainfrom
thc1006:fix/supply-chain-hardening-v2

Conversation

@thc1006
Copy link
Copy Markdown
Contributor

@thc1006 thc1006 commented Apr 19, 2026

Summary

Comprehensive supply chain hardening across 15 plugin files. Supersedes #498.

  • Pin all GitHub Actions from @master/@main to stable release tags
  • Update EOL actions (upload-artifact@v3@v4, codeql@v2@v3)
  • Pin all :latest container images to specific version tags
  • Fix secret logging in CI examples (echo → env var injection)
  • Fix CRLF → LF line endings in deployment-engineer.md

Changes

Actions pinned (supply chain risk)

Action Old ref New ref Files
aquasecurity/trivy-action @master @0.28.0 3
snyk/actions/node @master @0.4.0 2
SonarSource/sonarcloud-github-action @master @v3 1
dependency-check/Dependency-Check_Action @main @v6 1
actions/upload-artifact @v3 (EOL) @v4 5
github/codeql-action/upload-sarif @v2 @v3 2
codecov/codecov-action @v3 @v4 1

Images pinned (reproducibility)

Image Old tag New tag
bitnami/kubectl :latest :1.31
prom/prometheus :latest :v3.2
jaegertracing/all-in-one :latest :1.62
grafana/tempo :latest :2.7
vault :latest :1.17
trufflesecurity/trufflehog :latest :3.88
sonarqube :latest :10.8-community
aquasec/trivy :latest :0.58.0
ghcr.io/astral-sh/uv :latest :0.6
temporalio/auto-setup :latest :1.26
temporalio/ui :latest :2.33

Security fix

secrets-management/SKILL.md examples previously echoed secrets to CI logs:

# Before (leaks credentials)
echo "API Key: ${{ secrets.API_KEY }}"

# After (safe env var injection)
env:
  API_KEY: ${{ secrets.API_KEY }}
run: ./deploy.sh

Motivation

  • @master/@main refs are mutable — a compromised upstream can inject malicious code (cf. tj-actions/changed-files compromise March 2025)
  • upload-artifact@v3 reached EOL November 2024 and now returns errors
  • :latest tags make builds non-reproducible and can break silently
  • echo ${{ secrets.X }} teaches unsafe patterns that bypass log masking

Test plan

  • Verify no remaining @master or @main Action refs
  • Verify no remaining :latest in base images
  • Verify secrets-management examples use env var pattern

…ging

Supply chain:
- Pin GitHub Actions to stable releases instead of @master/@main:
  trivy-action@0.28.0, snyk@0.4.0, sonarcloud@v3, dependency-check@v6
- Update EOL actions: upload-artifact v3→v4, codeql/upload-sarif v2→v3,
  codecov v3→v4
- Pin container images to specific tags instead of :latest:
  kubectl:1.31, vault:1.17, prometheus:v3.2, jaeger:1.62, tempo:2.7,
  sonarqube:10.8-community, trivy:0.58.0, trufflehog:3.88, uv:0.6,
  temporalio auto-setup:1.26, temporalio ui:2.33

Security:
- Replace echo of secrets in CI examples with env var injection pattern
  (secrets-management SKILL.md)

Misc:
- Fix CRLF → LF line endings in deployment-engineer.md
@wshobson
Copy link
Copy Markdown
Owner

Spot-checked the action and image pins (all real and current), and verified the deployment-engineer.md churn is purely CRLF→LF normalization with no hidden content edits. Solid cleanup — thanks for the thorough pass. Merging.

@wshobson wshobson merged commit 89b93d5 into wshobson:main Apr 26, 2026
2 checks passed
@thc1006 thc1006 deleted the fix/supply-chain-hardening-v2 branch April 26, 2026 20:27
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.

2 participants