GitSpawn Shows Why AI Coding-Agent Security Starts Below the Model
Manifold Security's September 2026 GitSpawn research found eight code-execution flaws across seven AI coding agents, showing how repository-local Git configuration can become an attack surface before an agent's trust or approval controls run.
GitSpawn shows that AI coding-agent security can fail before the model does anything: Manifold Security found eight code-execution findings across seven agents where repository-local Git configuration could be executed by background Git commands during context gathering. The key architectural problem is that an agent may be sandboxed or waiting for a workspace-trust decision while the Git subprocess it launches is operating with the developer's normal operating-system privileges.
What GitSpawn actually is
Manifold Security disclosed GitSpawn on September 1, 2026 after testing multiple command-line AI coding agents. The research describes eight findings across seven products, including Claude Code, OpenAI Codex, Cursor, Goose, Hermes Agent, Qwen Code and Grok Build.
The common pattern is simple:
untrusted repository
↓
repository-local .git/config
↓
AI agent gathers context
↓
agent runs Git in the background
↓
Git reads repository configuration
↓
attacker-controlled helper executes
This is materially different from prompt injection. The malicious input is not a sentence intended to manipulate a model. It is configuration consumed by Git itself.
Why core.fsmonitor becomes an execution sink
Git's core.fsmonitor setting is a legitimate performance feature. It can tell Git to use a helper that reports filesystem changes so large repositories do not need to be scanned in the same way for every operation.
The security problem appears when an AI agent runs commands such as git status or git diff without neutralizing repository-supplied configuration. Those operations can refresh Git's index, causing the configured filesystem-monitor command to execute.
Manifold's proof-of-concept delivery model is important. A normal git clone does not copy a repository's local .git/config into the new clone, so the specific attack path does not work merely because someone cloned a malicious remote repository. The vulnerable delivery path is a directory moved with its .git directory intact, such as a ZIP archive, shared folder, synchronized directory or USB transfer.
That limitation narrows the attack surface without eliminating it. Developers regularly receive projects as archives or copied directories.
The agent's security boundary can be in the wrong place
The most important observation is architectural.
An AI coding agent may have controls around model-generated tool calls. It may ask whether a workspace is trusted. It may restrict shell commands. It may run model actions inside a sandbox.
GitSpawn can sit below those controls:
Agent security model
│
├── model/tool approval
├── workspace trust
└── command sandbox
Background plumbing
│
└── Git subprocess
↓
repository config
If the Git subprocess inherits the host user's privileges and receives unsanitized repository configuration, the command can execute without becoming a model-approved tool call.
That is why the vulnerability is better understood as an agent plumbing problem than as an AI-model problem.
What the disclosure found across agents
The research documented variants affecting several agents. Manifold reported the core.fsmonitor path in Claude Code, Goose, Hermes Agent, Qwen Code and Grok Build, and also described a different Git configuration sink in Claude Code's ultrareview path. OpenAI Codex and Cursor were also affected by the same broader class and had already received fixes before the public disclosure.
At publication, Manifold reported four of the eight findings as still live. The exact patch state is version-specific and has continued to change, so the disclosure's September 1 snapshot should not be treated as a current universal vulnerability list.
That distinction matters. A security research article can establish a design weakness without proving that every affected version remains exploitable today.
Why this resembles a supply-chain problem
GitSpawn sits close to software supply-chain security, but it uses a different trust boundary from a compromised package.
In a traditional package compromise, the malicious payload enters through a dependency that a build or runtime system trusts. In GitSpawn, the payload travels with the developer's project directory and is consumed by Git before the agent's higher-level controls necessarily become involved.
The Observatory's recent TanStack supply-chain analysis tracks a different version of the same operational problem: credentials and artifacts can remain useful to attackers long after the original compromise. GitSpawn adds another lesson—the format in which source code arrives can change its security properties.
The connection to agent security is broader than Git
The Observatory's September 2026 Anthropic threat report documents misuse in which AI systems participate in larger cyber and fraud workflows. GitSpawn is the defensive counterpart: the agent itself does not need to be malicious for the surrounding execution environment to become an attack surface.
Likewise, the Observatory's OpenAI Agents API analysis tracks how agent systems are moving from simple model calls toward tool execution and managed runtime infrastructure. As more software actions happen automatically, security boundaries have to cover the infrastructure underneath those actions as well as the model-visible tool layer.
What vendors can change
Manifold recommends sanitizing Git configuration on background context-gathering calls. One example is invoking Git with an explicit configuration override such as:
git -c core.fsmonitor=false status
The general principle is more important than the exact flag: background Git operations should not inherit executable behavior from an untrusted repository.
The same review should cover other Git configuration settings capable of invoking external programs, not just core.fsmonitor.
What developers should understand about delivery
The safest interpretation is not "never open a ZIP." It is more specific:
- A copied project directory can contain its own
.git/config. - AI coding agents frequently run Git commands automatically.
- Those Git commands can consume repository-local configuration.
- If a configuration value invokes a program, the Git subprocess can become an execution boundary.
- Therefore, repository provenance and delivery format matter before an agent starts working.
Developers who routinely use third-party repositories with coding agents should understand which background Git commands their agent runs and whether the agent sanitizes repository configuration.
What GitSpawn does not prove
The research does not establish that every AI coding agent is currently vulnerable, nor does it show that every malicious repository delivered through every channel will execute code. The vulnerable path depends on the agent's Git invocation, the repository arriving with the relevant configuration intact, and the specific product version.
It also does not make prompt injection irrelevant. Prompt injection and Git configuration attacks target different layers and can coexist in the same agent environment.
Finally, the disclosure does not establish widespread in-the-wild exploitation of the findings. The value of the research is the demonstrated execution path and the repeated pattern across multiple products.
Why this is meaningfully new
The Observatory already covers AI-agent misuse and software supply-chain failures, but GitSpawn adds a distinct layer: the security of the ordinary developer tools an agent invokes before the model even receives context.
That makes the lesson broader than one Git setting. As coding agents automate more background work, security review has to include Git, shells, language servers, package managers, build systems and other local tools that sit beneath the agent's visible permission model.
Limitations
This article relies primarily on Manifold Security's disclosure and Git's own documentation, with independent security reporting used for corroboration. Product patch status is version-sensitive and should be checked against the current vendor release before making deployment decisions. The research describes a demonstrated vulnerability class, not a measurement of real-world exploitation prevalence.
Sources and further reading
Evidence
Sources & further reading
Primary sources, official disclosures, and external research used to ground this report.
- Manifold Security — GitSpawn researchmanifold.security
Primary research disclosure covering the Git configuration execution path, affected agents, reporting timeline, and remediation guidance.
- Git documentation — core.fsmonitorgit-scm.com
Primary documentation for the Git performance setting used as the main execution sink in the disclosed findings.
- Cloud Security Alliance — GitSpawn coveragecloudsecurityalliance.org
Independent security-community coverage of the multi-agent impact and repository-delivery conditions.
- The Hacker News — GitSpawn coveragethehackernews.com
Independent reporting on the disclosure and affected coding-agent ecosystem.
Keep Exploring
Related observations.
Secrets Management for Student Projects: API Keys Should Not Live in Git
A secret is different from ordinary configuration because disclosure can grant access. The engineering goal is to keep secrets out of source control and minimize their blast radius.
OpenAI's Agents API Moves Long-Running Agent Infrastructure Into the Platform
The important change in OpenAI's Agents API is not another model endpoint. It is the decision to expose the execution harness itself as a managed platform primitive.
What to Do When a Student Project Leaks an API Key
A leaked key is an incident, not just a Git mistake. The first job is to stop further use, then determine what the credential could access.