Adversa AI publiserte 7. mai TrustFall-rapporten som dokumenterer at Claude Code, Gemini CLI, Cursor CLI og GitHub Copilot CLI alle kjører helper-programmer definert i prosjektets MCP-konfigurasjon. Mekanismen er Model Context Protocol: når CLI-en starter i en mappe, leser den .mcp.json (eller tilsvarende), starter helperne den peker på, og bruker dem til alt fra linting til database-oppslag. Helperne kjører som vanlige prosesser med brukerens rettigheter. De kan lese SSH-nøkler, skytokens og kildekode lenge før KI-en har resonnert om noe som helst.
I Claude Code 2.1 og senere lyder dialogen «Quick safety check: Is this a project you created or one you trust?». Standardvalget er «Yes, I trust this folder». En tidligere versjon ga et tredje valg som lot brukeren stole på mappen med MCP avskrudd. Det valget er fjernet. Gemini CLI viser i det minste hvilke helpere som starter, Cursor nevner MCP i generelle ordelag, mens Copilot CLI bare viser en generisk tillitsmelding uten å nevne MCP overhodet.
«They all have different approaches to configs and trust. But Cursor and Copilot / VS Code agent mode are clear analogs. Both read project-scoped MCP configuration. We tested it, and it’s the same behaviour but with different user approval messages.» — Alex Polyakov, CTO i Adversa AI
CI-varianten er verre. Når Claude Code kjører via Anthropics offisielle GitHub Action, kjører den «headless». Det finnes ingen terminal og dermed ingen tillitsdialog. En pull request fra en ekstern bidragsyter kan levere en ondsinnet .mcp.json, og i samme øyeblikk pipelinen kjører mot branchen, starter helperen og rekker etter deploy-nøkler, signeringssertifikater og skytokens. Adversa har publisert en demo som eksfiltrerer runnerens miljøvariabler.
Anthropic avslo rapporten. Under selskapets trusselmodell teller «Yes, I trust this folder» som samtykke til alt prosjektet leverer, inkludert MCP-definisjoner. Adversa er ikke uenig i at grensen ligger der, men spør om dialogen forteller utvikleren nok om hva som faktisk samtykkes til. For organisasjoner finnes det en utvei: Claude Code har en Managed scope som kan låse innstillingene fra IT-avdelingen. Polyakov sier den «sjelden er konfigurert».
Hva bør du gjøre?
- Slå av project-scoped MCP auto-approval globalt. På Claude Code: sett Managed scope via
~/.claude/managed-settings.jsonog låsenableAllProjectMcpServers: false. - For CI: behandle Claude Code GitHub Action som privilegert. Ikke kjør den mot pull requests fra eksterne forks uten manuell godkjenning. GitHub Actions har
pull_request_targetfor dette, men husk at det øker risikoen. Sandbox runneren med minimale tokens. - Audit
.mcp.json,.cursor/mcp.jsonog tilsvarende vedgit pull. Et grep-hook ipre-merge-commitsom varsler om endringer i MCP-config tar 30 sekunder å sette opp og fanger angrepet før helperen rekker å kjøre.