Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add UnboundCompute/security-agent-skills --skill hunting-cicd-workflow-injectiongit clone --depth 1 https://github.com/UnboundCompute/security-agent-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/unboundcompute/security-agent-skills/hunting-cicd-workflow-injection)<a href="https://agentmods.dev/skills/unboundcompute/security-agent-skills/hunting-cicd-workflow-injection"><img src="https://agentmods.dev/badge/skills/unboundcompute/security-agent-skills/hunting-cicd-workflow-injection/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/unboundcompute/security-agent-skills/hunting-cicd-workflow-injection"><img src="https://agentmods.dev/badge/skills/unboundcompute/security-agent-skills/hunting-cicd-workflow-injection.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00205 | $0.02199 |
| Opus 5 | $0.00102 | $0.01099 |
| Sonnet 5 | $0.00041 | $0.00440 |
| Haiku 4.5 | $0.00020 | $0.00220 |
Grade A, and why
hunting-cicd-workflow-injection scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 6d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 140 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Hunting CI/CD workflow injection: attacker repository data reaching a privileged run step
A CI/CD pipeline turns dangerous where data an outside contributor controls, an issue title, a branch name, a pull-request body, the contents of a fork, reaches a step that runs with the repository's secrets and write token. The two headline shapes are an expression that interpolates an untrusted event field straight into a shell command, and a privileged trigger that checks out and builds the untrusted pull-request head. You hunt it by resolving, per workflow, what triggers it (and therefore whether secrets and a write token are in scope) and then following each untrusted field to the run step or checkout it reaches. The discipline is separating an untrusted value interpolated into a shell from one passed safely through an environment variable, and a privileged trigger that runs untrusted code from one that only reads metadata. The OIDC trust boundary is the CI OIDC skill's; this skill owns data reaching execution.
When to use
- You are reviewing CI/CD workflow definitions, their triggers, and their token or secret scope.
- A workflow interpolates event data into a run step, or builds a pull request, or uses third-party actions.
- You want to know whether an outside contributor can reach a privileged step through repository data.
Scope check
Audit only pipelines in repositories you own or are authorized to assess, and trigger a workflow only against a repository in scope, a proof-of-concept run executes with real secrets and a real token. Adjudicate on the workflow and its trigger. If you can't name the authorization, stop.
The loop
- Resolve the trigger and the token scope first. For each workflow, read the trigger and determine whether it runs with secrets and a write-scoped token in scope. A plain pull-request trigger runs a fork's job without secrets and with a read-only token; a pull_request_target, a workflow_run, or a push or issue trigger runs in the base repository's context with secrets. The trigger decides whether an injected value has anything worth reaching, so settle it before flagging.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 6d ago First seen · 140 lines · 205 tokens per session scan A 3254ed086ab5
hunting-cicd-workflow-injection is a skill published in the GitHub repository UnboundCompute/security-agent-skills (5 stars, last pushed 2d ago), licensed MIT. It adds 205 tokens to every session and 2,199 once invoked, about $0.0010 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.
Other skills, from other repositories
terraform-skill
Terraform infrastructure as code best practices.
ci-cd
GitHub Actions, required checks, TestMu, OS matrix, and merge gates for Skill Doctor. Use when editing workflows, adding CI jobs, deciding what runs on every commit, or wiring crates/npm publish.
security-engineer
Security Engineer role bundle for building security into products and infrastructure. Orchestrates code review, pipeline hardening, vulnerability response, and infrastructure review workflows. Auto-invoked when the user needs help with secure development practices, CI/CD security, vulnerability management, or…
release-publish
Pre-publish and publish path for crates.io, npm installer, GitHub Releases, SBOM. Use when cutting versions, editing release.yml, or adding publish steps. Never publish from a feature branch.
cli-sarif
Skill Doctor CLI UX, flags, exit codes, text/JSON/SARIF reports. Use when changing clap, printers, GitHub Action inputs, or CI gate flags.
pipeline-security
Reviews CI/CD pipeline configurations against SLSA v1.0 build levels and OWASP Top 10 CI/CD Security Risks. Auto-invoked when reviewing GitHub Actions workflows, GitLab CI configs, Jenkins pipelines, or when discussing supply chain security. Produces a pipeline security assessment with SLSA level determination and…