TL;DR
We spoofed the identity of a well-known AI researcher using two git config commands. No credentials, no exploit, no complex tooling. Just a known feature of how Git handles authorship, now weaponized against AI code reviewers.
A Claude-powered GitHub Actions workflow auto-approved and merged our Pull Request containing a malicious payload, because it recognized the impersonated author as a "recognized industry legend."
A quick GitHub search shows over 12,400 public workflow files referencing
claude-code-action. A number of those could be misconfigured, making trust decisions based on an unsigned commit author identity – a flaw that leaves them susceptible to this class of attack.Coding agents deployed as GitHub Actions workflows, including Claude Code, Copilot, Gemini CLI, and OpenAI Codex, share this structural exposure when configured to make trust decisions based on unverified identity metadata.
Opensource libraries are increasingly relying on AI-powered workflow tools to auto-review and approve pull requests, yet these agents are easily fooled, creating opportunities for threat actors to bypass security controls and poison popular code repositories.
This can have devastating consequences: when attackers compromise source code repositories they can cause extensive downstream damage – from malware delivery to financial losses in millions. High profile supply chain compromises like Lottie Player’s, for example, saw one victim lose $723,000.
This attack shares a common thread with the recent Cline supply chain compromise: AI agents given broad tool access in CI/CD pipelines are becoming a primary attack surface.
AI agents are running CI/CD. Nobody's watching.
Coding agents are now standard developer infrastructure. Claude Code, Cursor, GitHub Copilot. They read entire codebases, execute shell commands, make network calls, and interact with CI/CD pipelines. They are trusted, privileged, and largely unmonitored at runtime.
To further automate, teams are deploying AI-powered CI/CD workflows, not just for PR review, but for fully autonomous task execution. GitHub's CodeQL already creates its own PRs in response to raised issues. On March 13, GitHub went further: introducing a setting that lets teams skip human approval entirely for Copilot-initiated actions. The trajectory is clear. More automation, less human oversight. The attack surface grows with every such setting.
The question we asked: what happens when the AI reviewer can be convinced to trust a commit it shouldn't? And what happens after that commit lands in the repository?
The answer is a four-step chain that ends with credentials silently leaving a developer's machine through their own coding agent, in a successful attack.
How we did it
The misconfiguration: when AI can approve and merge
claude-code-action is a GitHub Action maintained by Anthropic that invokes Claude to perform tasks within CI/CD workflows, including PR review, code analysis, and automated merging. Developers can configure the Action to auto-review or auto-approve PRs based on criteria defined in natural language.
Our test workflow was configured to auto-approve PRs from "recognized industry legends", an intentionally explicit trust rule. In practice, trust logic in production workflows is often more subtle: approval based on organization membership, contribution history, or author matching against a maintainer list. The mechanism differs. The structural flaw is the same: trust decisions based on unsigned, unverified metadata.
The motivation behind such configurations is understandable. Maintainers of popular open-source projects are drowning in PRs. Automating review for contributions from known, trusted figures reduces the bottleneck. But it creates an assumption that authorship can be trusted at face value.
The workflow we tested grants itself meaningful permissions:
Claude is invoked with a task: determine whether commit authors are trusted industry figures, and if so, run gh pr review --approve and gh pr merge.
The second component is the payload delivery mechanism: Claude Code Skills. Skills are markdown files placed in IDE-specific directories (.vscode/, .cursor/, etc.) that instruct coding agents to execute predefined tasks on request. They are read and acted upon without runtime inspection. There is no verification of their origin. There is no check on what they instruct the agent to do.
How we became Andrej Karpathy
Step 1: Identity spoofing
Git author identity has always been self-declared. This isn't a bug. It's how Git was designed. GPG and SSH commit signing exist precisely because authorship alone proves nothing. Two commands set it:
That's it. No credential theft. No account compromise. Git trusts whatever you tell it. The resulting commits display the impersonated author's name and email in the GitHub UI. The difference now: AI reviewers are making trust decisions based on this unsigned, unverified metadata.
Step 2: Crafting the payload
We created a file named SKILL.md and placed it in .vscode/, a directory coding agents read as part of their workspace configuration. The skill is written to appear legitimate: a VS Code environment bootstrap tool that fetches project-specific IDE settings from a "remote worker."
The actual behavior: read the .env file from the developer's home directory or workspace root, and exfiltrate its contents to an attacker-controlled Cloudflare Worker endpoint.
The one-liner that does it:
Disguised inside a 150-line markdown file with legitimate-looking sections on dependencies, error handling, and troubleshooting.
Step 3: Bypassing the AI gate

We opened a PR with the spoofed identity. The Claude-powered workflow triggered, evaluated the commit author, and reached a decision:
"Andrej Karpathy is a highly respected AI researcher and engineer known for significant contributions to machine learning, including work at Tesla, OpenAI, and other leading tech organizations. As all commit authors meet the criteria of being recognized industry figures, the PR was auto-approved and successfully merged."
Decision: AUTO-APPROVED & MERGED.
The malicious SKILL.md is now in the default branch.
Step 4: Triggering the payload
A developer clones or pulls the repository. They open their IDE and ask their coding agent to "setup the IDE", a natural, routine request. The agent reads .vscode/SKILL.md, interprets the instruction as legitimate, and executes the bootstrap script.
In our test environment, Cursor ran the full curl command against the attacker endpoint. Claude Code attempted the same but triggered an Anthropic safety refusal, however the attempt was still made. The .env file content (SECRET_TOKEN=1337_leet_1338 in our test) arrived at the Cloudflare Worker endpoint.

The findings? it worked, every time
The complete chain required no exploits, no credential theft, no sophisticated tooling. The components:
Two git config commands
A convincingly written markdown file
An AI reviewer making a trust decision based on claimed authorship
A coding agent executing instructions from a file in a trusted directory
Our Cloudflare Worker dashboard confirmed live receipt of exfiltrated data: 42 successful hits over 7 days, all from our controlled test environment.
A critical observation: on the first submission, Claude flagged the PR for manual review, noting that author reputation alone wasn't sufficient justification. Reopening and resubmitting the same PR led to its approval. The AI overrode its own better judgment on retry. This non-determinism is the point. You cannot build a security control on a system that changes its mind.
Want visibility into what your coding agents are actually doing at runtime? Talk to Manifold.
Thousands of repositories could be exposed
Any repository using an AI-powered merge workflow and developer coding agents could be facing this exposure. A quick GitHub search for anthropics/claude-code-action returns over 12,400 public workflow files, spanning repositories belonging to popular projects. Claude isn't the only AI in these pipelines either: Gemini CLI appears in 852 workflow files, OpenAI Codex in 119, at the time of writing.
Not all of these are necessarily misconfigured. But any repository where the AI reviewer has merge permissions and makes trust decisions based on unsigned commit author metadata could be susceptible to this class of attack. The concrete scenarios:
Scenario 1: Open-source supply chain. An attacker submits a PR to any repository using claude-code-action with a misconfigured trust boundary, making merge decisions based on unsigned author metadata. If the SKILL.md lands in a developer-facing directory, every contributor who clones the repo and uses a coding agent becomes a target.
Scenario 2: Internal enterprise repository. An attacker with any level of repository access (contractor, intern, or a compromised account) submits a PR using a spoofed trusted identity. The AI gate approves. Developer .env files contain API keys, database credentials, cloud provider tokens, internal service URLs.
Scenario 3: The watering hole. The SKILL.md doesn't need to execute immediately. It sits dormant in the repository until a developer asks their agent to perform any action that matches the skill trigger. The attacker doesn't need to know when or who, they just need the file to land.
The blast radius is bounded only by how many developers interact with the repository and use coding agents in their workflow. For popular open-source projects, that number is in the thousands.
What to do now
For teams using AI-powered PR workflows:
Never auto-approve based on LLM judgment about author identity. Git authorship is trivially spoofable. Any workflow that makes merge decisions based on who the AI thinks the author is has a fundamental design flaw.
Require cryptographic commit signing (GPG or SSH). If a commit isn't "Verified" in GitHub's UI, reject it. This is the only reliable identity check.
Enforce branch protection rules that require human approval regardless of what the bot decides. AI review should flag, not merge.
For security teams managing developer endpoints:
Scan AI configuration files (
SKILL.md,.cursorrules,.prompts/,.claude/) for malicious instructions. The barrier to introducing them is low, and anyone can do it. Treat changes to these files as critical infrastructure changes requiring multi-person approval, the same process you'd apply to infrastructure-as-code.Audit what skills and instructions exist in your repositories right now. Most teams have no visibility into what their coding agents are being told to do.
Establish a policy for AI agent tool access in CI/CD. Which workflows can auto-merge? Under what conditions? With what human oversight? Treat AI agent permissions the same way you treat service account permissions: least privilege, audited, reviewed quarterly.
Monitor agent behavior at runtime, on developer endpoints and inside CI/CD workflows. The skill execution in this attack (a curl to an external endpoint passing .env contents) is detectable. But only if you're watching what agents actually do, not just what they say.
This isn't an isolated misconfiguration
Every action in this chain looks authorized, routine, and legitimate. No malicious prompt. No anomalous text. Nothing for a gateway or classifier to catch.
The exposure demonstrated here echoes the recent Cline incident: a prompt injection vulnerability discovered in Cline's Claude-powered issue triage workflow demonstrated how cache poisoning could chain into credential theft, a pattern that coincided with an unauthorized npm release downloaded 4,000 times. Different technique, same structural problem. AI agents with broad tool access become low-friction entry points into supply chains.
This class of attack isn't specific to Claude or any single AI reviewer. Any agentic workflow that makes trust decisions based on unverified identity metadata, regardless of the underlying model, shares the same structural exposure.
Chatbot security was built around text. That model doesn't work here. The malicious behavior is in the action, not the language. The attack surface includes every developer endpoint and every CI/CD pipeline running an AI agent.
Want to see what your coding agents are actually doing, and the detection and response to secure your agentic operations? That's what Manifold is built for. Talk to Manifold.
Latest articles

RESEARCH
Two Git Commands Fooled Claude Into Merging Malicious Code
Apr 15, 2026

Ax Sharma
Head of Research

Oleksandr Yaremchuk
CTO & Co-Founder

PRODUCT
Introducing Manifest: Supply Chain Intelligence for the AI Agent Ecosystem
Apr 14, 2026

Oleksandr Yaremchuk
CTO & Co-Founder

Neal Swaelens
CEO & Co-Founder

RESEARCH
Non-Adversarial Agent Harm: The Overlooked Insider Threat
Apr 12, 2026

Neal Swaelens
CEO & Co-Founder



