github-actions-goat

github-actions-goat Verification Report #

Overview #

github-actions-goat is a deliberately vulnerable GitHub Actions CI/CD environment provided by StepSecurity. It reproduces threat scenarios based on the CISA/NSA CI/CD Security Guidance and serves as an educational project for learning defense strategies.

This report documents the results of static analysis performed by sisakulint on all 24 workflow files in the repository, evaluating detection coverage for each vulnerability scenario.

Detection Rate Summary #

CategoryDetectedMissedRate
Statically detectable scenarios (12)10283%
Runtime/operational scenarios (5)050% (out of scope by design)
All scenarios (17)10759%

Detection Statistics #

  • Total findings: 295
  • Files analyzed: 24
  • Rules triggered: 10 distinct rules
RuleCountDescription
missing-timeout-minutes134Missing timeout configuration
commit-sha72Actions not pinned to commit SHA
artipacked25Credential persistence in .git/config
dependabot-github-actions24Missing Dependabot configuration
permissions20Missing or overly broad permissions
known-vulnerable-actions8Actions with known CVEs/GHSAs
self-hosted-runner7Self-hosted runner risks
dangerous-triggers-critical1Dangerous privileged trigger
untrusted-checkout1Untrusted checkout in privileged context

Case Index #

#CaseStatusDetails
1Dangerous Triggers (pull_request_target)DetectedPRTargetWorkflow.yml
2TOCTOU VulnerabilityDetectedtoc-tou.yml
3Supply Chain: Vulnerable Third-Party ActionsDetectedtj-actions, changed-files
4Supply Chain: Unpinned ActionsDetectedAll 24 files
5Overly Broad PermissionsDetected20 files
6Credential Persistence (Artipacked)Detected22 files
7Self-Hosted Runner RisksDetected7 files
8Missing TimeoutDetectedAll 24 files
9Missing DependabotDetectedAll 24 files
10Code Injection via Action OutputNot Detectedchanged-files workflows
11Secret Exposure in Build LogsNot Detectedsecret-in-build-log.yml
12Network Exfiltration (Runtime)Out of Scopeexfiltration-demo workflows
13Build-Time File Tampering (Runtime)Out of Scopebackdoor-demo workflows

Complementary Relationship: sisakulint and harden-runner #

github-actions-goat is specifically designed to demonstrate StepSecurity’s harden-runner, a runtime security tool. sisakulint is a static analysis tool, so runtime scenarios such as network filtering, file tampering detection, and DNS exfiltration prevention are out of scope by design.

The two tools are complementary — defense in depth is best achieved by combining static analysis (sisakulint) with runtime protection (harden-runner).

Verification Workflows #

All github-actions-goat workflow files used for verification are stored in script/actions/goat-*.yml and script/actions/goat-*.yaml.

Verification Environment #