agents-md
Creates and maintains concise AGENTS.md and CLAUDE.md project instruction files. Use when asked to create AGENTS.md, update…
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,
Claude Code
$ npx -y skills add getsentry/skills --skill gha-security-review --agent claude-code
Codex
$ npx skills add getsentry/skills --skill gha-security-review -a codex -y
Cursor
$ npx skills add getsentry/skills --skill gha-security-review -a cursor -y
Gemini CLI
$ npx skills add getsentry/skills --skill gha-security-review -a gemini-cli -y
GitHub Copilot
$ npx skills add getsentry/skills --skill gha-security-review -a github-copilot -y
OpenCode
$ npx skills add getsentry/skills --skill gha-security-review -a opencode -y
Windsurf
$ npx skills add getsentry/skills --skill gha-security-review -a windsurf -y
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.' allowed-tools: Read Grep Glob Bash Task
<!-- 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 -->
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.
Review the workflows provided (file, diff, or repo). Research the codebase as needed to trace complete attack paths before reporting.
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:
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).
---
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.
Does the workflow use `pull_request_target` AND check out fork code?
Are `${{ }}` expressions used inside `run:` blocks in externally-triggerable workflows?
Does an `issue_comment`-triggered workflow execute commands without authorization?
Are elevated credentials (PATs, deploy keys) accessible to untrusted code?
Does the workflow load configuration from PR-supplied files?
Are **third-party** actions securely pinned to full SHAs?
Agent skills for Sentry employees, following the Agent Skills open format.
Creates and maintains concise AGENTS.md and CLAUDE.md project instruction files. Use when asked to create AGENTS.md, update…
Write, review, and improve blog posts for the Sentry engineering blog following Sentry's specific writing standards, voice, and…
Write copy following Sentry brand guidelines. Use when writing UI text, error messages, empty states, onboarding flows, 404…
Analyze a repository to generate recommended Claude Code settings.json permissions. Use when setting up a new project, auditing…
Perform code reviews following Sentry engineering practices. Use when reviewing pull requests, examining code changes, or…
Simplifies and refines code for clarity, consistency, and maintainability while preserving all functionality. Use when asked to…
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.