Review GitHub Actions for Exploitable Vulnerabilities
Finds exploitable GitHub Actions vulnerabilities via traced attack paths, not generic CI/CD theory.
Why it matters
This skill rigorously analyzes GitHub Actions workflows to identify exploitable security vulnerabilities. It focuses on real-world attack paths, providing concrete exploitation scenarios and actionable fixes for external attackers.
Outcomes
What it gets done
Analyze workflow files (.yml, action.yml) and related scripts.
Trace attack paths from external attacker entry points.
Identify vulnerabilities like Pwn Request, Expression Injection, and Credential Escalation.
Provide high/medium confidence findings with detailed exploitation scenarios and fixes.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/ag-gha-security-review | bash Overview
GitHub Actions Security Review
Finds exploitable GitHub Actions vulnerabilities by tracing concrete attack paths - pwn requests, expression injection, credential escalation, and supply-chain risk - graded by confidence, sourced from real exploit research. Use it when reviewing GitHub Actions workflows or composite actions for exploitable security issues tied to a concrete external-attacker threat model.
What it does
Finds exploitable vulnerabilities in GitHub Actions workflows, requiring every finding to include a concrete exploitation scenario - if the attack can't be built, it isn't reported. Its threat model is scoped to an external attacker without repository write access (can open fork PRs, issues, and comments, but can't push branches or trigger workflow_dispatch), and it explicitly refuses to flag anything that requires write access to exploit. Findings are graded HIGH (full attack path traced and confirmed), MEDIUM (partially confirmed, needs verification), or LOW (theoretical or already mitigated - not reported at all); a HIGH finding requires all five elements - entry point, payload, execution mechanism, impact, and a proof-of-concept sketch.
${{ github.event.pull_request.number }}
Its four-step process: classify each workflow's triggers and load only the matching reference file (pwn-request, expression-injection, credential-escalation, supply-chain, and others), check eight vulnerability classes (pwn requests via pull_request_target plus fork checkout, expression injection in run: blocks, unauthorized comment-triggered commands, credential escalation, config-file poisoning via CLAUDE.md/AGENTS.md, unpinned third-party actions, over-broad permissions, and insecure runner infrastructure), validate before reporting by reading the actual workflow YAML and tracing the complete path, and report in a structured format (workflow location, trigger, confidence, exploitation scenario, impact, fix) - explicitly reporting zero findings rather than inventing issues when nothing is confirmed.
When to use - and when NOT to
Use it when reviewing GitHub Actions workflows, composite actions, or workflow-related scripts for exploitable security issues, tracing a concrete attack path from an external attacker to workflow execution or secret exposure. Not a fit for workflows in other repositories (only their dependency gets noted), or GitHub App installation permissions.
Inputs and outputs
Input: workflow YAML files (.github/workflows/*.yml), composite actions (action.yml), and config files they load. Output: a structured findings report with HIGH-confidence exploitable vulnerabilities (workflow location, trigger, exploitation scenario, impact, fix), MEDIUM items needing verification, and a "reviewed and cleared" list - or an explicit "no exploitable vulnerabilities identified" when nothing confirms.
Integrations
Sources its attack patterns from real-world GitHub Actions exploit research - the HackerBot Claw campaign analysis by StepSecurity, 2025 - and loads topic-specific reference files (references/pwn-request.md, references/expression-injection.md, references/credential-escalation.md, references/supply-chain.md, references/permissions-and-secrets.md, references/runner-infrastructure.md, references/real-world-attacks.md) selectively based on the triggers actually found.
Who it's for
Security reviewers and developers auditing GitHub Actions workflows for real, exploitable vulnerabilities rather than generic CI/CD security theory.
It draws a sharp technical distinction to avoid false positives: ${{ }} expressions are dangerous inside run: blocks (shell expansion of attacker-controlled text) but safe inside if:, with:, and env: at the job or step level, since those are evaluated by the Actions runtime rather than a shell.
FAQ
Common questions
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.