CheckVibeCodeCheckVibeCode
Checks/Infrastructure
InfrastructureEnhanced with input5 checks

GitHub Actions Supply Chain Scanner

Analyze CI workflows for script injection, untrusted-code execution, exposed self-hosted runners, and unpinned third-party actions.

How this scan works

  • Parses every workflow as YAML and analyzes it job by job, rather than pattern-matching the file as text
  • Script injection: flags attacker-controlled context (github.event.issue.title, .pull_request.title, .comment.body, github.head_ref and the rest of GitHub’s documented untrusted set) interpolated into a run: block, an actions/github-script body, or an env: value that a shell later expands
  • Untrusted-code execution: pull_request_target or workflow_run jobs that check out the pull-request head without a scoped permissions: block — read per job, so one scoped job no longer clears the finding for the whole file
  • Self-hosted runners on a public repository, where any stranger’s pull request can execute on your hardware
  • Every third-party action checked for a full commit-SHA pin vs a mutable @tag/@branch (the tj-actions/changed-files vector)
  • Workflows that aren’t valid YAML still get text-level injection and runner checks, reported against the file instead of a job