Mijn credentials, graag: hoe MCP-servers bestandsrechten witwassen
Een label is geen grens
Een MCP-server vertelt wat hij is: "git", "zoeken", "notities". Wie agents met tools uitrolt, neemt dat label vaak als maat voor wat de tool mag aanraken. Huang e.a. laten zien waarom dat niet volstaat. Ze definiëren filesystem capability laundering: een tool waarvan het werkelijke bereik groter is dan de grens die uit zijn beschrijving en context volgt.
Het mechanisme in twee aanroepen
De studie beschrijft twee kwetsbaarheden in de Git MCP-server van Anthropic, beide inmiddels gepatcht.
- CVE-2025-68143 (
git_init). De tool initialiseert een repository op een door de aanroeper opgegeven pad, zonder te controleren of dat binnen de werkruimte valt. Wijst een door een aanvaller beïnvloed argument naar~/.ssh, dan wordt die map een Git-repository. Latere, volkomen legitieme Git-aanroepen geven de inhoud, inclusief privésleutels, terug als diff. De fix verwijderdegit_inituit de server (versie 2025.9.25). - CVE-2026-27735 (
git_add). Paden met../worden gestaged zonder controle op de repositorygrens. Bestanden buiten de werktree komen zo in de Git-objectdatabase en daarna in een diff of commit. Opgelost in 2026.1.14.
Geen van beide aanroepen lijkt op zichzelf verdacht. Het lek zit in de combinatie van een argument dat een aanvaller kan beïnvloeden en een tool die geen grens afdwingt.
Wat is gemeten, en wat niet
- Het corpus: 21.097 vermeldingen uit negen registries. De analyse richt zich op lokale, open-source stdio-servers die daadwerkelijk starten; slechts 34,2% haalt de meetfase.
- Van 4.806 getriageerde servers geven 787 (16,4%) een filesystem-signaal terwijl de categorie dat niet suggereert. Dat is een screeningssignaal, geen telling van kwetsbare servers.
- Dynamische validatie bevestigde 150 kwetsbare instanties onder de geteste sandboxbeleidsregels. 144 daarvan (96,0%) werkten met een kaal traversal-pad.
- Coordinated disclosure leverde 13 advisories op.
De auteurs benoemen zelf de beperkingen: selectiebias (97% Node en Python, 84% van de gestarte servers komt van één registry), alleen servers die te installeren en te draaien zijn, en geen meting van hoe nauwkeurig de afgeleide grenzen zijn. Lees de 16,4% dus niet als "een op de zes MCP-servers is lek".
Wat dit betekent voor wie MCP gebruikt
Het dreigingsmodel is concreet: een lokale stdio-server draait met de rechten van de gebruiker, en de goedkeuringsprompt van de client dwingt geen padbeperking af. Een gateway of WAF ziet dit verkeer niet.
- Inventariseer welke MCP-servers draaien, onder welk account en met welke tools.
- Leg de grens in het besturingssysteem, niet in de tool. De studie toont dat een OS-sandbox de misbruikvolgorde blokkeert (EPERM) terwijl de legitieme aanroep blijft werken.
- Behandel padargumenten als onbetrouwbaar: canonieke padcontrole en symlinks bij toegang, niet bij registratie.
- Volg advisories van de servers die je draait; beide Git-fixes bestaan al maar bereiken je alleen als je ze installeert.
- Documenteer per agent welke tool welke paden mag raken. Dat is bruikbaar bewijs bij een risicoanalyse onder de NIS2-richtlijn en bij de eisen voor robuustheid en cyberbeveiliging in artikel 15 van de AI-verordening.
De auteurs stellen op protocolniveau een fs_scope-veld in tools/list voor, zodat een client het gevraagde bereik vóór goedkeuring kan zien. Dat bestaat nog niet; tot die tijd is de sandbox jouw verantwoordelijkheid.
Zie ook
AI & Security Intelligence
Wekelijkse nieuwsbrief met AI updates, security alerts en compliance inzichten, direct in uw inbox.
Security & AI Operating Model
Advisory met executiekracht
Van BIO2 en NIS2 tot EU AI Act, embedded in uw operating model, niet als extern project. Maandelijks opzegbaar, met assessments als bewijsvoering.