hunting-cicd-workflow-injection

hunting-cicd-workflow-injection is a skill for Claude Code from UnboundCompute/security-agent-skills. It costs 205 tokens per session (2,199 once invoked), scanned A, original, MIT.

A security review guide for finding attacker-controlled repository data reaching privileged CI/CD steps. CI/CD means automated systems that build, test, and deploy code; these steps may have repository write access or secrets.

In plain words
What is it for?
Use it to review workflow triggers, token and secret permissions, shell commands, checkouts, and builds involving pull requests or other outside contributions.
Why use it?
It reveals when pull-request text, branch names, commit messages, or untrusted code is inserted into shell commands or run with permissions intended for trusted code.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the security-agent-skills plugin — 194 skills shipped together

Good fit Use it to review workflow triggers, token and secret permissions, shell commands, checkouts, and builds involving pull requests or other outside contributions.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/unboundcompute/security-agent-skills/hunting-cicd-workflow-injection
Install

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.

Any agent
npx skills add UnboundCompute/security-agent-skills --skill hunting-cicd-workflow-injection
Clone the repo
git clone --depth 1 https://github.com/UnboundCompute/security-agent-skills

Made for: Claude Code.

Or install security-agent-skills, the plugin that ships this one along with the rest of its 194 skills.

Wrote 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.

agentmods badge for hunting-cicd-workflow-injection

README.md
[![agentmods](https://agentmods.dev/badge/skills/unboundcompute/security-agent-skills/hunting-cicd-workflow-injection/github.svg)](https://agentmods.dev/skills/unboundcompute/security-agent-skills/hunting-cicd-workflow-injection)
Your own site
<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.

agentmods 80×15 button for hunting-cicd-workflow-injection

Your own site · 80×15
<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>
Per session 205 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,199 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce 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

Measured 6d ago against content hash 3254ed086ab5, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

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.

skills/hunting-cicd-workflow-injection/SKILL.md · 140 lines

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

  1. 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.

Read the full file on GitHub · 140 lines

Changes

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.

  1. 6d ago First seen · 140 lines · 205 tokens per session scan A 3254ed086ab5

Subscribe to this mod's changes

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.

Related

Other skills, from other repositories

terraform-skill

Terraform infrastructure as code best practices.

Agent-Threat-Rule/agent-threat-rules · 10 tokens

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.

KalarisLabs/Skill-Doctor · 46 tokens

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…

UnitOneAI/SecuritySkills · 72 tokens

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.

KalarisLabs/Skill-Doctor · 45 tokens

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.

KalarisLabs/Skill-Doctor · 40 tokens

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…

UnitOneAI/SecuritySkills · 75 tokens