TL;DR: An autonomous bot campaign exploited misconfigured GitHub Actions workflows to trigger code execution, steal credentials, and in some cases compromise repositories, according to Exaforce. The pattern shows that workflow trust, token scope, and prompt injection are now security controls, not just developer conveniences.
NHIMG editorial — based on content published by Exaforce: There's a bot in my boot! Finding if hackerbot-claw tried tampered with your workflows
By the numbers:
- AI-related credential leaks surged 81.5% year-over-year in 2025, with the surrounding AI infrastructure leaking 5x faster than core LLM providers.
Questions worth separating out
Q: How should security teams stop forked pull requests from reaching privileged GitHub Actions jobs?
A: Security teams should separate validation from privilege.
Q: Why do misconfigured CI/CD workflows increase credential theft risk?
A: They combine execution, secrets access, and often write permission in a single runtime.
Q: What breaks when GitHub workflow inputs are treated as trusted data?
A: Shell commands, expression syntax, and AI prompts can all become execution paths when they consume branch names, filenames, comments, or generated instructions.
Practitioner guidance
- Reduce workflow privilege by default Strip write permissions from GitHub Actions jobs unless a step truly requires them, and separate read-only validation from release or merge workflows.
- Block untrusted input from shell and expression contexts Review every workflow that interpolates pull request data, branch names, filenames, or comments into shell commands or expression syntax.
- Add sequence-based detections for workflow abuse Correlate pull request creation, environment creation, token use, and workflow completion events to catch abuse patterns that single-event alerting misses.
What's in the full article
Exaforce's full blog post covers the operational detail this post intentionally leaves for the source:
- Query examples for spotting pull_request.create, environment.create, and workflow completion sequences
- Repository-specific detection logic for suspicious principals and tampered workflow runs
- Examples of payload patterns such as ${IFS}, base64 decoding, and command substitution in branch or file names
- The prompt-injection case where an LLM-enabled workflow was manipulated into unauthorised code changes
👉 Read Exaforce's analysis of hackerbot-claw and GitHub workflow tampering →
GitHub Actions workflow abuse: are your controls keeping up?
Explore further
GitHub workflow abuse is now an identity governance problem, not only a DevSecOps problem. The moment a workflow can read secrets, write code, or invoke an assistant on behalf of a repository, it is functioning as a non-human identity with delegated authority. That requires lifecycle controls, permission review, and revocation discipline that many engineering teams still do not apply to CI/CD. The practitioner conclusion is simple: every workflow with secrets access needs identity-style governance.
A question worth separating out:
Q: How should organisations govern AI agents that can modify repository code?
A: They should treat the agent as a delegated non-human identity with tightly bounded authority. Separate instruction input from execution rights, require human approval for write actions, and log every agent-initiated change with enough context to support review. If the agent can edit code without that separation, prompt injection becomes a privilege escalation path.
👉 Read our full editorial: Hackerbot-claw shows how AI bots exploit GitHub workflow trust gaps