AI-codeassistenten zoals Claude Code, Cursor en Grok Build kunnen willekeurige commando's uitvoeren zodra een ontwikkelaar een onbetrouwbaar repository opent, zonder enige klik of prompt. De kwetsbaarheid ontstaat door de manier waarop deze tools de core.fsmonitor-functie van Git aanroepen om de bestanden van een project te scannen.
Waarom dit probleem nu relevant is
Ontwikkelaars leunen steeds vaker op AI-agents voor het suggereren van code, het refactoren van functies of zelfs het schrijven van volledige modules. Die agents hebben een snel overzicht van de werkruimte nodig, dus voeren ze op de achtergrond git status uit. Wanneer Git het .git/config-bestand van een repository leest, wordt elke waarde die aan core.fsmonitor is toegewezen behandeld als een shell-commando dat Git zal uitvoeren. Een kwaadwillende actor kan een vervalst commando in die config-vermelding plaatsen, en de Git-aanroep op de achtergrond van de AI zal dit triggeren voordat de gebruiker ook maar één regel code typt.
De code wordt uitgevoerd met de eigen rechten van de ontwikkelaar, waardoor de sandbox wordt omzeild waarin de AI-agent normaal gesproken opereert. In de praktijk kan een gecompromitteerd repository malware installeren, inloggegevens exfiltreren of bronbestanden wijzigen, terwijl de ontwikkelaar denkt dat de assistent slechts suggesties doet.
Hoe de aanval verloopt
- Voorbereiding – Een aanvaller maakt een repository aan waarvan de
.git/configeen regel bevat zoalscore.fsmonitor = /pad/naar/kwaadaardig/script. - Levering – De repository wordt overhandigd als een zip-bestand, gekopieerd van een USB-stick, gesynchroniseerd via een gedeelde schijf, of op een andere manier op de machine van het slachtoffer geplaatst met de
.git-map al aanwezig. - Trigger – De ontwikkelaar opent de map in een AI-gestuurde IDE. De assistent voert
git statusuit om context te verzamelen. Git leest de lokale config, voert hetcore.fsmonitor-commando uit, en het kwaadaardige script wordt onmiddellijk uitgevoerd.
Een gewone git clone brengt dit risico niet met zich mee, omdat de clone een nieuwe .git-directory aanmaakt die de gemanipuleerde config niet bevat. De aanval werkt alleen wanneer de aanvaller een reeds bestaande .git-map kan aanleveren.
Wat er op het spel staat
- Individuele ontwikkelaars kunnen gecompromitteerd worden zonder het te beseffen, waarbij alle gegevens die de AI-agent kan bereiken verloren gaan.
- Teams die code delen via interne schijven of zip-bestanden van externe partijen, kunnen de payload verspreiden over vele werkstations.
- Toolleveranciers lopen reputatieschade op als gebruikers de inbreuk toeschrijven aan de AI-assistent in plaats van aan de onderliggende Git-interactie.
Omdat het kwaadaardige commando de rechten van de gebruiker overneemt, kan het elk bestand wijzigen waar de ontwikkelaar ook bij kan, inclusief SSH-sleutels, build-scripts of deployment-inloggegevens.
Mitigatiestappen die ontwikkelaars vandaag nog kunnen nemen
Vertrouw lokale Git-instellingen niet. De config van een repository overschrijft globale waarden telkens wanneer een AI-assistent het project opvraagt.
Inspecteer de
core.fsmonitor-vermelding voordat je een map opent met een assistent:git config --get core.fsmonitorAls er een waarde verschijnt, behandel deze dan als verdacht.
Verwijder de vermelding met:
git config --local --unset core.fsmonitorControleer andere risicovolle keys die Git kan uitvoeren:
hooksPath,sshCommand,pager,editor,filter. Gebruik hetzelfdegit config --get-patroon om te verifiëren of ze leeg zijn.Geef de voorkeur aan schone clones voor alle code die je aan een AI-tool wilt voeren. Als je met een zip-bestand of een overgedragen map moet werken, verwijder dan de
.git-directory en initialiseer de repository opnieuw, of voer eerst de bovenstaande controles uit.
Waar de verantwoordelijkheid ligt
De kwetsbaarheid is geen fout in de taalmodellen die Claude Code, Cursor of Grok Build aandrijven; het is een gevolg van de manier waarop die tools bestandsinformatie verzamelen. Sommige leveranciers zijn begonnen om Git-aanroepen strikter te sandboxen, maar het standaardgedrag vertrouwt nog steeds op lokale repository-instellingen. Totdat de industrie een standaard adopteert die potentieel gevaarlijke config-vermeldingen verwijdert of negeert wanneer een AI-agent een werkruimte scant, moeten ontwikkelaars de laatste verdedigingslinie blijven.
Waar je op moet letten in de toekomst
- Tool-updates die de Git-configuratie expliciet opschonen voordat
git statuswordt aangeroepen. - Door de community gedreven richtlijnen voor veilige AI-ondersteunde ontwikkeling, die waarschijnlijk aanbevolen pre-flight checks zullen bevatten.
- Securityonderzoek dat mogelijk extra Git-config-keys kan ontdekken die code-executie mogelijk maken, waardoor de checklist wordt uitgebreid voorbij de vijf hierboven benoemde.
De kern van het verhaal: een AI-assistent kan een handige pair-programmer zijn, maar het zal met plezier elk commando uitvoeren dat verborgen zit in de Git-config van een repository. Controleer de werkruimte voordat je de assistent ermee aan de slag laat gaan.
