Akav Labs' AgentSentry-team publiserte 28. april en gjennomgang av Model Context Protocol-økosystemet etter flere ukers systematisk red team-research. Funnene er ikke navngitt mot enkelt-leverandører ennå (koordinert disclosure løper til juli 2026), men metodikken og sårbarhetsklassene er publisert i klartekst. Leverandører som er undersøkt inkluderer database-servere, CI/CD-integrasjoner og identitetsleverandører hos store infrastrukturselskaper.
Den viktigste observasjonen er strukturell: «Vi fant ikke en samling isolerte bugs. Vi fant de samme klassene av sårbarhet, reprodusert hos leverandør etter leverandør», skriver teamet. Protokollen gir byggeklosser for sikker implementasjon, men den forhindrer ikke en usikker en. destructiveHint er rådgivende, elicitation-støtte er valgfritt, og det finnes ingen obligatorisk valideringslag.
«Angrepsoverflaten er ikke bare verktøyene selv. Den er alt verktøyene kan lese. Hvis et verktøy henter en webside, en databasepost, en pull request-beskrivelse eller en loggfil, går innholdet direkte inn i agentens kontekstvindu.» — Akav Labs, AgentSentry-research
De seks mønstrene er konkrete nok til at du kan auditere mot dem i dag. Mønster 1 er destructiveHint-feilmerking: verktøy som faktisk muterer data står merket som ikke-destruktive, og MCP-klienter som Claude Desktop og Cursor advarer derfor ikke brukeren. Mønster 2 er read-only-bypass: en Redis MCP-server merket et tool som readonly: true selv om det aksepterte både EVAL (vilkårlig Lua) og FLUSHALL (tørket hele databasen). Implementasjonen brukte blokkliste i stedet for tillatelsesliste.
Mønster 3 er elicitation-bypass: confirmation-funksjonen returnerer true hvis MCP-klienten ikke støtter elicitation (som Cursor og VS Code Copilot ikke gjør), så safety-sjekken feiler stille åpent på flertallet av klienter i prod. Mønster 4 er query- og operator-injeksjon i database-servere, inkludert NoSQL-operator-injeksjon via $where, $function og $accumulator i MongoDB-aggregering, som kjører server-side JavaScript. Mønster 5 er at minst ett verktøy returnerte en API-credential rett inn i agentens kontekst med kommentaren «not needed by the server», en designfeil som åpner enhver prompt-injection som ekfiltreringsvei.
Det sjette mønsteret stikker dypt: spotlighting-teknikken (Microsofts egen anbefaling om å pakke verktøysvar i XML-delimiters merket som untrusted) var implementert på 3 av 91 verktøy i en Microsoft-vedlikeholdt MCP-server. Det er 3,3 prosent dekning. Hullene var nettopp pull request-beskrivelser, work item-felt, wiki-sider og kommentarer, der angripere planter prompt-injection.
Hva bør du gjøre?
- Audit destructiveHint-feltene i alle MCP-servere du vedlikeholder. Hvert verktøy som skriver, sletter eller utløser en handling i den virkelige verden skal ha annotasjonen true. Inkonsistens mellom skrive-verktøy er et rødt flagg.
- Konverter read-only-modus til tillatelsesliste. Definer eksplisitt hvilke operasjoner som er tillatt. Avvis alt annet. Ikke stol på en blokkliste over kjente skrive-operasjoner. Den fanger ikke EVAL, FLUSHALL eller $where-stages.
- Behandle alt verktøy-output som untrusted. Pakk innhold fra eksterne kilder (web, database, brukerkommentarer) i spotlighting-delimiters før det går inn i agentens kontekst. Dette bør være default i MCP-rammeverket ditt, ikke noe utviklere må huske å aktivere.
- Fjern verktøy som returnerer credentials. Hvis serveren har en API-nøkkel, skal den brukes på klientens vegne, aldri returneres til LLM-konteksten. Enhver arkitektur som plasserer hemmeligheter i agentens vindu er en potensiell ekfiltreringsvei.
Bakgrunn
MCP er Anthropics spesifikasjon for hvordan LLM-agenter snakker med eksterne verktøy. Hver større infrastrukturleverandør har sluppet MCP-servere de siste månedene (Microsoft, MongoDB, Auth0, Cloudflare, ClickHouse, Upstash). Sikkerhetsmodellen er implisitt: agenten stoler på verktøyene, verktøyene stoler på agenten, og data flyter direkte inn i kontekstvinduet uten sandbox eller obligatorisk validering. Akav Labs vil publisere fulle CVE-numre og leverandørspesifikke detaljer når koordinert disclosure-vinduet lukkes i juli 2026.