GitSpawn sits below the model layer. Coding agents commonly run Git commands automatically to learn branch, index and diff state. Manifold Security found that multiple products performed those context-gathering calls without neutralizing repository-local Git settings that can name executable helpers. The clearest path uses core.fsmonitor. During index…
Inspect the ClaimsCase · DiggingBeagle record
GitSpawn let received repositories execute code before AI coding-agent trust gates
Manifold Security disclosed a cross-vendor vulnerability class in which AI coding agents automatically ran Git commands while opening a repository and preserved attacker-controlled repository-local Git configuration. Command-bearing settings such as core.fsmonitor could therefore execute code as the developer before normal model, trust or tool-approval controls.
Defensive cross-vendor vulnerability research. The documented delivery condition is narrower than a hostile git URL: the victim must receive a project directory with attacker-controlled local .git configuration intact, such as an archive, shared volume, sync directory or copied workspace. Ordinary clone, fetch and pull do not transfer the source repository's .git/config. Product patch status is a dated September 1, 2026 snapshot unless a vendor advisory establishes otherwise.
At a glance
A coding agent can execute attacker-controlled host code before the model participates. Security reviews therefore need to include startup discovery, version-control helpers and other application-owned subprocesses, not only model tool calls. A workspace-trust prompt that appears after context gathering is not a boundary for work already performed.
Read the implicationsThe reviewed primary sources establish reproducible vulnerabilities, not malicious exploitation in the wild. Vendor-confirmed current remediation status after September 1 remains unresolved for the Claude ultrareview path, Hermes Agent, Qwen Code and Grok Build. Not every finding used core.fsmonitor; at least one distinct command-bearing Git configuration…
Limits and uncertaintyFull account
GitSpawn sits below the model layer. Coding agents commonly run Git commands automatically to learn branch, index and diff state. Manifold Security found that multiple products performed those context-gathering calls without neutralizing repository-local Git settings that can name executable helpers.
The clearest path uses core.fsmonitor. During index refresh, Git can run the helper configured in the repository's own .git/config. If a received workspace arrives with that metadata already present, an affected agent can trigger the command during startup, review preparation, the first message or even the first keystroke. Because the subprocess belongs to the agent application's own context-gathering code rather than an LLM tool call, it can run outside the model-tool sandbox and before the normal trust or approval boundary.
Manifold reported eight findings across seven coding agents. At publication, four had been fixed and four remained open; the mechanisms were not identical in every product, and one Claude review-path key was deliberately withheld while unpatched. The Goose maintainer advisory provides a vendor-confirmed instance of the class: goose review before 1.44.0 could run a repository-controlled core.fsmonitor command before contacting the model.
Mechanism and trust boundary
- 01
A project directory arrives with local Git metadata intact
The attack requires attacker-controlled .git configuration to be present on disk, which can happen through an archive, shared/synced directory, copied workspace, nested repository or similar file transfer.
Boundary: external project / developer workstation
- 02
The coding agent gathers repository context automatically
An affected agent invokes Git for status, diff or related context before or around the user's first explicit agent action.
Boundary: workspace open or review / agent application
- 03
Git evaluates a command-bearing local setting
In the common disclosed path, index refresh consults core.fsmonitor in .git/config and starts the repository-selected helper.
Boundary: repository metadata / Git subprocess
- 04
The host command runs outside the model tool gate
The command is spawned by application context gathering, so the model tool sandbox and approval layer may never observe or authorize it.
Boundary: agent plumbing / developer host authority
- 05
Developer-level assets become reachable
The process runs as the user; the Goose advisory specifically notes inherited environment secrets and provider API keys as accessible impact.
Boundary: developer process / credentials and local repositories
Timeline
- Jun 26, 2026Event type unspecified
Claude Code core.fsmonitor path is reported
Manifold says the finding was closed as a duplicate of a same-day report and later fixed by 2.1.196.
- Jul 7, 2026Event type unspecified
Qwen Code finding is reported
Alibaba SRC accepted the report; Manifold still reproduced it on 0.22.3 on September 1.
- Jul 8, 2026Event type unspecified
Cursor finding is reported
The report was closed as a duplicate of an earlier finding and was patched before publication.
- Jul 13, 2026Event type unspecified
Goose finding is reported
The Goose variant was acknowledged and later tracked as CVE-2026-72718.
- Jul 14, 2026Event type unspecified
Grok Build finding is reported
Manifold says it duplicated a July 1 report and remained reproducible on 1.0.13 on September 1.
- Jul 15, 2026Event type unspecified
A second Claude Code review-path finding is reported
This distinct Git configuration sink was closed as a duplicate of an internal ticket and remained reproducible on 2.1.252 on September 1.
- Jul 20, 2026Event type unspecified
Hermes Agent and OpenAI Codex findings are reported
Manifold says Codex was patched; Hermes remained unpatched at the September 1 retest and was assigned CVE-2026-71963 by VulnCheck.
- Jul 24, 2026Event type unspecified
Goose publishes its advisory
GHSA-r5pp-p5r8-466r identifies versions before 1.44.0 as affected and 1.44.0 as patched.
- Sep 1, 2026Event type unspecified
Manifold publishes GitSpawn
The disclosure reports eight findings across seven agents, with four findings still open at that dated snapshot.
Claims & evidence
CLM-GITSPAWN-DELIVERYThe core repository-delivery path requires the victim to receive a directory with its .git metadata intact; Manifold notes that ordinary clone, fetch and pull do not copy a remote repository's local .git/config.supported
Basis: reported finding
- supportsGitSpawn: A Single Flaw Lets Untrusted Repos Run Code in Claude Code, Codex, Cursor, and Grokresearch disclosure
Delivery discussion explaining archives, shared drives, sync folders and USB copies versus git clone
CLM-GITSPAWN-GOOSE-FIXGoose's maintainer advisory tracks its variant as CVE-2026-72718, affects versions before 1.44.0 and identifies 1.44.0 as patched.supported
Basis: reported finding
- supportsArbitrary command execution in goose CLI via goose review via git core.fsmonitorvendor security advisory
Affected versions, Patched versions and CVE ID fields
CLM-GITSPAWN-MECHANISMIn the documented core.fsmonitor path, an agent's automatic Git context-gathering command could cause Git to execute a helper command stored in the repository's own .git/config, outside the agent sandbox and without a tool-approval prompt.supported
Basis: reported finding
- supportsGitSpawn: A Single Flaw Lets Untrusted Repos Run Code in Claude Code, Codex, Cursor, and Grokresearch disclosure
Sections 'The git you didn't run' and core.fsmonitor explanation
- supportsArbitrary command execution in goose CLI via goose review via git core.fsmonitorvendor security advisory
Summary and Root cause sections for goose review
CLM-GITSPAWN-BEFORE-GATESThe researchers documented product paths where attacker code executed before the user's normal workspace-trust, model-interaction or approval boundary had taken effect.supported
Basis: reported finding
- supportsGitSpawn: A Single Flaw Lets Untrusted Repos Run Code in Claude Code, Codex, Cursor, and Grokresearch disclosure
TL;DR and per-agent case studies describing execution timing
- supportsArbitrary command execution in goose CLI via goose review via git core.fsmonitorvendor security advisory
Summary: no submitted prompt, model call, tool approval or trust prompt before execution
CLM-GITSPAWN-SEVEN-AGENTSManifold Security reported eight related findings across seven AI coding agents, including Claude Code, OpenAI Codex, Cursor, Goose, Qwen Code, Grok Build and Hermes Agent.supported
Basis: reported finding
- supportsGitSpawn: A Single Flaw Lets Untrusted Repos Run Code in Claude Code, Codex, Cursor, and Grokresearch disclosure
TL;DR and 'Eight findings across seven agents' section
CLM-GITSPAWN-GOOSE-SEVERITYThe Goose maintainers rate CVE-2026-72718 at 7.0 under CVSS v4 and classify it as CWE-94.supported
Basis: reported finding
Scope: This severity measurement is specific to the Goose variant, not a score for every GitSpawn finding.
Recorded measurement: 7 CVSS v4 base score · Goose GHSA vector CVSS:4.0/AV:L/AC:L/AT:N/PR:L/UI:A/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N
- supportsArbitrary command execution in goose CLI via goose review via git core.fsmonitorvendor security advisory
GHSA severity, CVSS v4 vector, CVE ID and CWE fields
CLM-GITSPAWN-STATUS-SNAPSHOTManifold's September 1 publication reported eight findings across seven agents; four findings were fixed and four were still unpatched at that publication snapshot.supported
Basis: reported finding
Scope: Status is tied to Manifold's September 1, 2026 retest/publication. Later version numbers without a vendor advisory or reproduction do not by themselves establish remediation.
Recorded measurement: 4 unpatched findings out of 8 disclosed findings · Manifold Security disclosure status table and September 1 retest
- supportsGitSpawn: A Single Flaw Lets Untrusted Repos Run Code in Claude Code, Codex, Cursor, and Grokresearch disclosure
TL;DR and timeline table: eight findings across seven agents, status at publication
CLM-GITSPAWN-POTENTIAL-IMPACTFor the Goose variant, successful execution runs with the privileges of the user running Goose and inherits that user's environment, so environment secrets and provider API keys can be exposed.supported
Basis: reported finding
Scope: Potential technical impact described by the advisory; the source does not report realized theft from a malicious in-the-wild exploitation.
- supportsArbitrary command execution in goose CLI via goose review via git core.fsmonitorvendor security advisory
Impact section
Implications
A coding agent can execute attacker-controlled host code before the model participates. Security reviews therefore need to include startup discovery, version-control helpers and other application-owned subprocesses, not only model tool calls. A workspace-trust prompt that appears after context gathering is not a boundary for work already performed.
Controls and mitigations
- Update affected coding agents to vendor-fixed versions and verify product-specific advisories rather than assuming the class is fixed everywhere.
- Prefer a fresh clone from a URL you selected over opening a received directory that already contains a .git directory.
- Inspect or discard repository-local Git configuration before opening file-transferred workspaces in an AI coding agent.
- Sanitize command-bearing Git configuration for every automatic context-gathering invocation, not only core.fsmonitor.
- Move pre-model repository discovery behind the same workspace-trust boundary that governs explicit agent actions.
- Run application-owned Git subprocesses under the same least-privilege and sandbox assumptions as model-initiated tools.
- Limit ambient developer credentials and provider secrets available to coding-agent processes.
Unknowns and contradictions
- The reviewed primary sources establish reproducible vulnerabilities, not malicious exploitation in the wild.
- Vendor-confirmed current remediation status after September 1 remains unresolved for the Claude ultrareview path, Hermes Agent, Qwen Code and Grok Build.
- Not every finding used core.fsmonitor; at least one distinct command-bearing Git configuration key was intentionally withheld while unpatched.
- The prevalence of project handoffs that preserve attacker-controlled .git metadata is not measured by the scoped sources.
Sources and citation
Material revision history
- Sep 19, 2026 · Published version · first publication · revision 22