gha-security-review
GitHub Actions security review for workflow exploitation vulnerabilities.
Skill by clemens33
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
npx agentmarket install skill/clemens33-gha-security-review
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: devops, security, productivity
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
gha-security-review- Description
- GitHub Actions security review for workflow exploitation vulnerabilities. Use when asked to "review GitHub Actions", "audit workflows", "check CI security", "GHA security", "workflow security review", or review .github/workflows/ for pwn requests, expression injection, credential theft, and supply chain attacks. Exploitation-focused with concrete PoC scenarios.
- License
- Apache-2.0
- Allowed tools
- Read,, Grep,, Glob,, Bash,, Task
- Metadata
- category: preference
- Instructions
- 182 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (10)
- SKILL.md
- ai-prompt-injection-via-ci.md · references/
- comment-triggered-commands.md · references/
- credential-escalation.md · references/
- expression-injection.md · references/
- permissions-and-secrets.md · references/
- pwn-request.md · references/
- real-world-attacks.md · references/
- runner-infrastructure.md · references/
- supply-chain.md · references/
SKILL.md (first lines)
<!--
Attack patterns and real-world examples sourced from the HackerBot Claw campaign analysis
by StepSecurity (2025): https://www.stepsecurity.io/blog/hackerbot-claw-github-actions-exploitation
-->
# GitHub Actions Security Review
Find exploitable vulnerabilities in GitHub Actions workflows. Every finding MUST include a concrete exploitation scenario — if you can't build the attack, don't report it.
This skill encodes attack patterns from real GitHub Actions exploits — not generic CI/CD theory.
## Scope
Review the workflows provided (file, diff, or repo). Research the codebase as needed to trace complete attack paths before reporting.
### Files to Review
- `.github/workflows/*.yml` — all workflow definitions
- `action.yml` / `action.yaml` — composite actions in the repo
- `.github/actions/*/action.yml` — local reusable actions
- Config files loaded by workflows: `CLAUDE.md`, `AGENTS.md`, `Makefile`, shell scripts under `.github/`
### Out of Scope
- Workflows in other repositories (only note the dependency)
- GitHub App installation permissions (note if relevant)
## Threat Model
Only report vulnerabilities exploitable by an **external attacker** — someone **without** write access to the repository. The attacker can open PRs from forks, create issues, and post comments. They cannot push to branches, trigger `workflow_dispatch`, or trigger manual workflows.
**Do not flag** vulnerabilities that require write access to exploit:
- `workflow_dispatch` input injection — requires write access to trigger
- Expression injection in `push`-only workflows on protected branches
- `workflow_call` input injection where all callers are internal
- Secrets in `workflow_dispatch`/`schedule`-only workflows
## Confidence
Report only **HIGH** and **MEDIUM** confidence findings. Do not report theoretical issues.
| Confidence | Criteria | Action |
|---|---|---|
| **HIGH** | Traced the full attack path, confirmed exploitable | Report with exploitation scenario and fix |
| **MEDIUM** | Attack path partially confirmed, uncertain link | Report as needs verification |
| **LOW** | Theoretical or mitigated elsewhere | Do not report |
For each HIGH finding, provide all five elements:
1. **Entry point** — How does the attacker get in? (fork PR, issue comment, branch name, etc.)
2. **Payload** — What does the attacker send? (actual code/YAML/input)
3. **Execution mechanism** — How does the payload run? (expression expansion, checkout + script, etc.)
4. **Impact** — What does the attacker gain? (token theft, code execution, repo write access)
5. **PoC sketch** — Concrete steps an attacker would follow
If you cannot construct all five, report as MEDIUM (needs verification).
---
## Step 1: Classify Triggers and Load References
For each workflow, identify triggers and load the appropriate reference:
| Trigger / Pattern | Load Reference |
|---|---|
| `pull_request_target` | `references/pwn-request.md` |
| `issue_comment` with command parsing | `references/comment-triggered-commands.md` |
| `${{ }}` in `run:` blocks | `references/expression-injection.md` |
| PATs / deploy keys / elevated credentials | `references/credential-escalation.md` |
| Checkout PR code + config file loading | `references/ai-prompt-injection-via-ci.md` |
| Third-party actions (especially unpinned) | `references/supply-chain.md` |
| `permissions:` block or secrets usage | `references/permissions-and-secrets.md` |
| Self-hosted runners, cache/artifact usage | `references/runner-infrastructure.md` |
| Any confirmed finding | `references/real-world-attacks.md` |
Load references selectively — only what's relevant to the triggers found.
## Step 2: Check for Vulnerability Classes
### Check 1: Pwn Request
Does the workflow use `pull_request_target` AND check out fork code?
- Look for `actions/checkout` with `ref:` pointing to PR head
- Look for local actions (`./.github/actions/`) that would come from the fork
- Check if any `run:` step executes code from the checked-out PR
### Check 2: Expression Injection
Are `${{ }}` expressions used inside `run:` blocks in externally-triggerable workflows?
- Map every `${{ }}` expression in every `run:` step
- Confirm the value is attacker-controlled (PR title, branch name, comment body — not numeric IDs, SHAs, or repository names)
- Confirm the expression is in a `run:` block, not `if:`, `with:`, or job-level `env:`
### Check 3: Unauthorized Command Execution
Does an `issue_comment`-triggered workflow execute commands without authorization?
- Is there an `author_association` check?
- Can any GitHub user trigger the command?
- Does the command handler also use injectable expressions?
### Check 4: Credential Escalation
Are elevated credentials (PATs, deploy keys) accessible to untrusted code?
- What's the blast radius of each secret?
- Could a compromised workflow steal long-lived tokens?
### Check 5: Config File Poisoning
Does the workflow load configuration from PR-supplied files?
- AI agent instructions: `CLAUDE.md`, `AGENTS.md`, `.cursorrules`
- Build configuration: `Makefile`, shell scripts
### Check 6: Supply Chain
Are third-party actions securely pinned?
### Check 7: Permissions and Secrets
Are workflow permissions minimal? Are secrets properly scoped?From clemens33/dotfiles, Apache-2.0.
More from clemens33/dotfiles
- 0.570score
catch-up
clemens33
Brief the human after time away, or record a dropped idea.
SkillAFreshness: AClaude Code +9 - 0.565score
large-feature
clemens33
7-stage playbook for large features — multi-slice work where blast radius is real, design isn't trivial, or the deliverable must stay defensible post-ship.
SkillAFreshness: AClaude Code +9 - 0.565score
quiz-diff
clemens33
Quiz the human on a diff to fight comprehension debt, then teach only the gaps.
SkillAFreshness: AClaude Code +9 - 0.560score
cross-model-review
clemens33
How to get a second model provider onto a problem: classify the producer by its served model, pick a reviewer seat on another provider, ae routing…
SkillAFreshness: AClaude Code +9 - 0.529score
gcp-operations
clemens33
Install or operate Google Cloud safely with gcloud and bq: select explicit projects, authenticate with user credentials, ADC, or federation, control BigQuery…
SkillBFreshness: BClaude Code +9 - 0.524score
refactor-audit
clemens33
Audit a codebase for architecture drift and produce a `refactor-audit.md` with evidence, recommendation, and guardrail candidates.
SkillBFreshness: BClaude Code +9 - 0.524score
collab
clemens33
Structured research and collaboration protocol for one or more agents.
SkillBFreshness: BClaude Code +9 - 0.524score
drawio-diagrams-enhanced
clemens33
Write editable draw.io / diagrams.net XML (.drawio files) with PMP/PMBOK methodologies, icon libraries, and industry-standard templates.
SkillBFreshness: BClaude Code +9 - 0.524score
humanizer
clemens33
Rewrite text that reads as AI-generated so it sounds human.
SkillBFreshness: BClaude Code +9 - 0.524score
scope
clemens33
Decompose a task into a phased implementation plan with test gates.
SkillBFreshness: BClaude Code +9 - 0.524score
code-review
clemens33
Adversarial code review with structured findings.
SkillBFreshness: BClaude Code +9 - 0.524score
adr
clemens33
Write an Architecture Decision Record capturing the why behind a decision — the constraints, alternatives ruled out, and trade-offs accepted.
SkillBFreshness: BClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Aug 12, 2026 (2 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/clemens33/dotfiles
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.827score
gha-security-review
getsentryOfficial
GitHub Actions security review for workflow exploitation vulnerabilities.
SkillAFreshness: A★ 1.1KClaude Code - 0.342score
gha-security-review
OzcanOrhanDemirci
GitHub Actions security review for workflow exploitation vulnerabilities.
SkillAFreshness: AClaude Code
More from clemens33
- 0.570score
catch-up
clemens33
Brief the human after time away, or record a dropped idea.
SkillAFreshness: AClaude Code +9 - 0.565score
large-feature
clemens33
7-stage playbook for large features — multi-slice work where blast radius is real, design isn't trivial, or the deliverable must stay defensible post-ship.
SkillAFreshness: AClaude Code +9 - 0.565score
quiz-diff
clemens33
Quiz the human on a diff to fight comprehension debt, then teach only the gaps.
SkillAFreshness: AClaude Code +9 - 0.560score
cross-model-review
clemens33
How to get a second model provider onto a problem: classify the producer by its served model, pick a reviewer seat on another provider, ae routing…
SkillAFreshness: AClaude Code +9 - 0.529score
gcp-operations
clemens33
Install or operate Google Cloud safely with gcloud and bq: select explicit projects, authenticate with user credentials, ADC, or federation, control BigQuery…
SkillBFreshness: BClaude Code +9 - 0.524score
drawio-diagrams-enhanced
clemens33
Write editable draw.io / diagrams.net XML (.drawio files) with PMP/PMBOK methodologies, icon libraries, and industry-standard templates.
SkillBFreshness: BClaude Code +9
Cite this page
gha-security-review skill. Agent Mart. https://agentmart.dev/skills/clemens33-gha-security-review (last updated 2026-10-24)