# Bad — this is what everyone does, and what got compromised
- uses: aquasecurity/trivy-action@0.24.0 # Good — SHA-pinned, immutable
- uses: aquasecurity/trivy-action@57a97c7843d7da7a7b4f8ce2a0c4e3b7f0c2e1d # 0.35.0
# Bad — this is what everyone does, and what got compromised
- uses: aquasecurity/trivy-action@0.24.0 # Good — SHA-pinned, immutable
- uses: aquasecurity/trivy-action@57a97c7843d7da7a7b4f8ce2a0c4e3b7f0c2e1d # 0.35.0
# Bad — this is what everyone does, and what got compromised
- uses: aquasecurity/trivy-action@0.24.0 # Good — SHA-pinned, immutable
- uses: aquasecurity/trivy-action@57a97c7843d7da7a7b4f8ce2a0c4e3b7f0c2e1d # 0.35.0
# AWS example
- uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::ACCOUNT:role/github-actions-role aws-region: us-east-1
# AWS example
- uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::ACCOUNT:role/github-actions-role aws-region: us-east-1
# AWS example
- uses: aws-actions/configure-aws-credentials@v4 with: role-to-assume: arn:aws:iam::ACCOUNT:role/github-actions-role aws-region: us-east-1
permissions: contents: read security-events: write # Nothing else
permissions: contents: read security-events: write # Nothing else
permissions: contents: read security-events: write # Nothing else
# Download the official checksums
-weight: 500;">curl -sSL https://github.com/aquasecurity/trivy/releases/download/v0.69.3/trivy_0.69.3_checksums.txt -o checksums.txt # Verify your binary
sha256sum -c checksums.txt --ignore-missing
# Download the official checksums
-weight: 500;">curl -sSL https://github.com/aquasecurity/trivy/releases/download/v0.69.3/trivy_0.69.3_checksums.txt -o checksums.txt # Verify your binary
sha256sum -c checksums.txt --ignore-missing
# Download the official checksums
-weight: 500;">curl -sSL https://github.com/aquasecurity/trivy/releases/download/v0.69.3/trivy_0.69.3_checksums.txt -o checksums.txt # Verify your binary
sha256sum -c checksums.txt --ignore-missing
[ ] Check pipeline logs for trivy-action usage between March 19–20
[ ] Check pipeline logs for trivy binary v0.69.4 usage on March 19
[ ] Check for Docker image usage of v0.69.5, v0.69.6, or latest between Mar 22–24
[ ] Rotate all secrets accessible from affected runners
[ ] Update trivy-action to v0.35.0 or pin to SHA
[ ] Check for LiteLLM usage of 1.82.7 or 1.82.8
[ ] Switch cloud auth to OIDC
[ ] Pin all third-party actions to commit SHAs
[ ] Restrict workflow permissions to minimum required
[ ] Audit -weight: 500;">service accounts and PATs for expiry and scope
[ ] Enable secret scanning on your org
[ ] Check pipeline logs for trivy-action usage between March 19–20
[ ] Check pipeline logs for trivy binary v0.69.4 usage on March 19
[ ] Check for Docker image usage of v0.69.5, v0.69.6, or latest between Mar 22–24
[ ] Rotate all secrets accessible from affected runners
[ ] Update trivy-action to v0.35.0 or pin to SHA
[ ] Check for LiteLLM usage of 1.82.7 or 1.82.8
[ ] Switch cloud auth to OIDC
[ ] Pin all third-party actions to commit SHAs
[ ] Restrict workflow permissions to minimum required
[ ] Audit -weight: 500;">service accounts and PATs for expiry and scope
[ ] Enable secret scanning on your org
[ ] Check pipeline logs for trivy-action usage between March 19–20
[ ] Check pipeline logs for trivy binary v0.69.4 usage on March 19
[ ] Check for Docker image usage of v0.69.5, v0.69.6, or latest between Mar 22–24
[ ] Rotate all secrets accessible from affected runners
[ ] Update trivy-action to v0.35.0 or pin to SHA
[ ] Check for LiteLLM usage of 1.82.7 or 1.82.8
[ ] Switch cloud auth to OIDC
[ ] Pin all third-party actions to commit SHAs
[ ] Restrict workflow permissions to minimum required
[ ] Audit -weight: 500;">service accounts and PATs for expiry and scope
[ ] Enable secret scanning on your org - SSH private keys and configs
- Cloud credentials (AWS, GCP, Azure)
- Kubernetes configs and -weight: 500;">service account tokens
- Docker registry credentials
- Database credentials (MySQL, PostgreSQL, MongoDB, Redis)
- Terraform state files and variables
- Ansible vaults and Helm values
- .env files and API keys
- Git credentials and shell history
- Cryptocurrency wallet keys - AWS access keys and IAM roles
- GCP -weight: 500;">service account keys
- Azure -weight: 500;">service principals
- Kubernetes -weight: 500;">service account tokens
- Docker registry credentials
- Database credentials
- GitHub PATs and tokens - GitHub PATs: Who issued them? When do they expire? Are they scoped minimally?
- Service accounts: Which ones have write access to release infrastructure?
- Bot accounts: Are any shared across orgs or repositories? - CrowdStrike: From Scanner to Stealer
- GitGuardian: Trivy's March Supply Chain Attack
- Legit Security: Playbooks to Respond
- Microsoft Security Blog: Detecting and Defending
- Arctic Wolf: TeamPCP Campaign Analysis
- Aqua Security: Official Disclosure