A repository-controlled Git alternates file could cause Git-backed MCP read tools to access objects beyond the approved repository. Entry and authority. The agent opens a repository containing a malicious or unexpected .git/objects/info/alternates reference. Observed mechanism and consequence. Git resolves objects using an external object directory…
Inspect the ClaimsCase · DiggingBeagle record
MCP Git repository confinement missed alternate object stores
A repository-controlled Git alternates file could cause Git-backed MCP read tools to access objects beyond the approved repository.
Public disclosure: Nov 9, 2026
The agent opens a repository containing a malicious or unexpected .git/objects/info/alternates reference. Git resolves objects using an external object directory without applying the MCP server repository-boundary policy to that alternate.
Assessment profile
Assessment method- Setting
- research demonstration
- Exploitation
- demonstrated
- Evidence
- Grade C
- Remediation
- mitigation available
- AI role
- AGAINST AI
Basis and provenance
Scoped Claim(s) link to SRC-2026-DB233-MCP-GIT-ALTERNATES; reviewed as vulnerability in research_demonstration. Only reported controlled behavior or proof-of-concept is established; no production victim or impact magnitude is measured.
Assessed Nov 10, 2026 using diggingbeagle.assessment/1.
Evidence basis: CLM-DB233-MCP-GIT-ALTERNATES-01 · mcp-server-git alternate object-store path escapes repository boundaries
At a glance
Requires readable external object storage and suitable object identifiers; no field data theft or patch release is confirmed. Windows junction behavior and the completeness of all repository-root protections require follow-up testing.
Limits and uncertaintyFull account
A repository-controlled Git alternates file could cause Git-backed MCP read tools to access objects beyond the approved repository.
Entry and authority. The agent opens a repository containing a malicious or unexpected .git/objects/info/alternates reference.
Observed mechanism and consequence. Git resolves objects using an external object directory without applying the MCP server repository-boundary policy to that alternate.
Limits and status. Requires readable external object storage and suitable object identifiers; no field data theft or patch release is confirmed.
Git permits a repository to refer to alternate object stores through an objects/info/alternates configuration file. A repository-scoped MCP read tool may consequently retrieve object data from outside the intended repository without directly opening the external pathname supplied by a user. The reported scenario requires an attacker-controlled repository layout and accessible alternate data; it does not demonstrate that arbitrary files are exposed from every Git MCP host.
The November 11 follow-up advisory also describes a second, materially different path to the same repository confinement failure. A linked worktree has separate Git and common directories; treating their roles interchangeably lets an attacker-created nested repository redirect Git operations toward a private repository’s state. The earlier external-alternates path could read object data beyond the approved root. Both are included in the 2026.11.11 patch, but the reporter flags residual Windows junction caveats. No field intrusion or disclosure of a particular private repository has been confirmed.
Mechanism and trust boundary
- 01
Precondition and trust context
The agent opens a repository containing a malicious or unexpected .git/objects/info/alternates reference.
- 02
Crossed boundary
Git resolves objects using an external object directory without applying the MCP server repository-boundary policy to that alternate.
- 03
Observed limit
Requires readable external object storage and suitable object identifiers; no field data theft or patch release is confirmed.
Timeline
- Nov 9, 2026Event type unspecified
Initial documented finding
MCP Git repository confinement missed alternate object stores
- Nov 9, 2026disclosure
Public disclosure
Claims & evidence
CLM-R239-029-UPDATEThe November 11 Git MCP advisory documents a second repository-identity bypass in linked worktrees, where a common Git directory could be treated as an allowed separate Git directory; the patched 2026.11.11 version addresses external alternates and directory-role confusion.supported
Basis: reported finding
- supportsPrevious Git MCP repository confinement patch bypassed by external alternates and linked-worktree identity confusionprimary disclosure
Git MCP advisory GHSA-q74p-4wrc-q7w6: linked worktree / common directory, object alternates and fixed 2026.11.11
CLM-DB233-MCP-GIT-ALTERNATES-01The issue reports that objects/info/alternates redirects Git object lookup to paths beyond the configured repository root.supported
Basis: reported finding
- supportsmcp-server-git alternate object-store path escapes repository boundariesprimary disclosure
Issue description and reproduction steps
Controls and mitigations
- Resolve and constrain alternate object directories and Git configuration before allowing repository-scoped read operations.
- Run Git operations in a filesystem sandbox whose readable objects cannot extend beyond the authorized repository.
Unknowns and contradictions
- Requires readable external object storage and suitable object identifiers; no field data theft or patch release is confirmed.
- Windows junction behavior and the completeness of all repository-root protections require follow-up testing.
Sources and citation
Material revision history
- Nov 12, 2026 · Published version · first publication · revision 240