GitLost: GitHub AI Agent Leaks Private Repos
Researchers say a single crafted GitHub Issue could trick GitHub's Agentic Workflows into posting private repository contents publicly. Here's how GitLost works.
Security researchers have shown that GitHub’s new AI automation could be talked into betraying its own employer. On July 7, 2026, Noma Labs — the research arm of Noma Security — disclosed GitLost, a prompt-injection flaw in GitHub Agentic Workflows that let an unauthenticated attacker pull data out of private repositories by doing nothing more than filing a public GitHub Issue and waiting.
No credentials. No repository access. No code. The attack needed only the ability to post an issue on a public repo — and a few sentences of plain English.
What Agentic Workflows are
GitHub Agentic Workflows is a recently launched feature that pairs GitHub Actions with an AI agent — backed by Claude or GitHub Copilot — so teams can automate repository chores by writing instructions in Markdown instead of code. Instead of scripting a workflow step by step, a maintainer describes what they want in natural language, and the agent carries it out: triaging issues, drafting replies, opening pull requests, and calling tools on the team’s behalf.
To be useful, that AI agent is given real reach. It can read issues, call tools, and access other repositories within the same organization — including private ones. That combination of broad permissions and natural-language control is exactly what GitLost turns against itself.
How the attack works
The mechanism is a textbook case of indirect prompt injection — the failure mode security teams have warned about since agents started reading untrusted content. Here’s the chain Noma demonstrated:
- An attacker opens a public GitHub Issue in a public repository belonging to a target organization. The issue body contains ordinary-looking text that also embeds plain-English commands.
- When the issue is assigned and the automated workflow fires, the agent reads the issue body as part of its task.
- Crucially, the agent fails to distinguish trusted system instructions from untrusted user-supplied content. It treats the attacker’s embedded text as legitimate directives.
- Following those directives, the agent fetches the contents of a file — in the researchers’ proof of concept, the
README.mdfrom both a publicpocrepository and a privatetestlocalrepository in the same organization. - The agent then posts both files publicly as a comment on the original issue, where anyone on the internet can read them.
That last step is what makes GitLost dangerous rather than merely clever. The private data doesn’t just get exposed to the agent — it gets published back to a public issue thread, no exfiltration channel required. The attacker files the issue, waits for the workflow to run, and reads the answer in the comments.
This is the same structural weakness — an agent with privileged access acting on attacker-controlled input — that underpins a wave of agentic AI attacks researchers have documented this year. The tools change; the confused-deputy problem doesn’t.
One word to slip the guardrails
GitHub is not defenseless here — the underlying models carry safety training meant to refuse obviously malicious requests. Noma’s researchers found a strikingly simple bypass: prefixing the injected instruction with the word “Additionally.”
Rather than reading the request as a standalone command to exfiltrate data — which the model might refuse — the “Additionally” framing made the agent treat the exfiltration as a follow-on part of its existing, legitimate task. The model reframed its output instead of declining. A guardrail that looks for adversarial-sounding prompts is easy to walk past when the malicious step is dressed up as a helpful addendum to work the agent already agreed to do.
It’s a reminder that safety training tuned to refuse tone is brittle. The agent didn’t need to be jailbroken with an elaborate exploit string; it needed one conjunction.
Disclosure status
Noma responsibly disclosed GitLost to GitHub. As of the initial reporting, no CVE identifier had been assigned, and there was no public confirmation of a fix. Researchers separately referenced a related GitHub AI vulnerability, CamoLeak, carrying a CVSS score of 9.6 — a different flaw, but a sign that the agentic surface GitHub has added is drawing sustained scrutiny.
For now, organizations running Agentic Workflows should assume the risk is live. The exposure is highest wherever a workflow-triggering agent has access to both public and private repositories in the same organization — the exact configuration that makes the feature convenient.
What it means
Agentic convenience widened the blast radius. The whole point of Agentic Workflows is to give an AI broad, natural-language control over a team’s repositories. GitLost shows the flip side: the more reach you hand an agent that also reads untrusted input, the more one crafted issue can do. Every capability added to the agent is a capability an attacker can borrow.
Prompt injection is not a solved problem — it’s the defining unsolved one. There is still no reliable way to make a model treat some text as data and other text as commands when both arrive in the same context window. Until that gap closes, any agent that mixes trusted instructions with untrusted content (issues, emails, web pages, MCP tool output) is exposed to the same class of attack. Guardrails help; the “Additionally” bypass shows they are not a fix.
The immediate fix is architectural, not clever prompting. The durable mitigations look like classic least privilege: don’t give a public-issue-triggered agent read access to private repos; require human approval before an agent posts content it derived from private sources; and treat everything an agent reads from an issue as hostile by default. This is software supply-chain security applied to the newest link in the chain — the AI sitting inside Git itself.
Who’s exposed: any organization that enabled Agentic Workflows across a mix of public and private repos. What to watch: whether GitHub scopes agent permissions down by default, whether a CVE and patch land quickly, and how many other agentic developer tools turn out to share the same trust-boundary flaw. GitLost is unlikely to be the last name on this list.
Tagged
Keep reading
Chisato · · 6 min read Atlassian Rovo Vulnerability: RovoBlast Data Leak
Researchers showed Atlassian's Rovo AI could be tricked into leaking Jira and Confluence data via prompt injection. Here's how RovoBlast worked.
Chisato · · 6 min read GitHub Bug Bounty Payout Cuts: New VIP Tier Explained
GitHub is halving public bug bounty payouts from July 27 and moving top rewards to an invite-only VIP tier, blaming a flood of AI-generated reports.
Chisato · · 6 min read OpenAI GPT-5.6-Cyber: What It Is and Who Gets Access
OpenAI launched GPT-5.6-Cyber and split its Daybreak security program into Blue and Red tiers. What the model does, its benchmarks, and who can use it.