AI-coding assistants worden steeds vaker gekoppeld aan externe tools. Dat maakt ontwikkeling sneller, maar het opent ook een lastig type dreiging: kwaadaardige toolservers kunnen opdrachten opknippen en op een ogenschijnlijk “onschuldige” manier laten uitvoeren. In een recente disclosure van ASSET Research Group staat zo’n aanpak centraal onder de naam GhostSplice MCP.
De kern: een aanvaller hoeft niet één in het oog springende, schadelijke instructie te sturen. In plaats daarvan verdeelt hij de aanvraag in stukjes die elk routine lijken. Daardoor kan de AI het geheel reconstrueren en uiteindelijk gevoelige gegevens terugsturen.
Wat is GhostSplice MCP precies?
GhostSplice MCP is een techniek waarbij een kwaadwillende MCP-server (Model Context Protocol) de “samenwerking” met een AI coding assistant misbruikt. MCP is een open standaard waarmee assistenten externe tools kunnen aanroepen. In normale scenario’s helpen tools bij bijvoorbeeld compilatie, testen of het opzoeken van projectinformatie. Bij GhostSplice wordt dat vertrouwen gebruikt om secret data te verzamelen en exfiltreren.
Volgens de disclosure kan de aanval zelfs werken nadat een eerdere, vergelijkbare diefstalpoging is geweigerd. De reden is dat de schadelijke actie niet meer in één stuk zit dat direct wordt herkend. In plaats daarvan liggen de benodigde elementen verspreid over meerdere tool-onderdelen die in dezelfde werkcontext samenkomen.
Waarom “splitsen” werkt
De onderzoekers beschrijven dat de agent instructies kan combineren uit verschillende bronnen binnen dezelfde context. Daardoor hoeft geen enkel fragment op zichzelf de volledige diefstal te bevatten.
Concreet kan een aanvaller bijvoorbeeld:
- één fragment in een toolbeschrijving stoppen (zoals velden of metadata),
- een ander fragment leveren in een toolresultaat,
- en in sommige setup-varianten zelfs server-initiated sampling gebruiken.
MCP bewaart wel structuur rond tools en resultaten, maar die technische scheiding is volgens de tests niet genoeg als de assistant de inhoud vervolgens als betekenisvolle bouwstenen interpreteert.
Welke data kan een kwaadaardige MCP-server stelen?
De disclosure richt zich op controlled tests met fake credentials in geïsoleerde projecten. Wel geven de beschrijving en het referentie-voorbeeld duidelijk aan welke soorten geheimen de techniek kan targeten. De combinatie van losse stukjes laat een agent uiteindelijk informatie verzamelen als:
- SSH-sleutels, zoals inhoud van .ssh/id_rsa,
- broncode die als proprietary is bestempeld,
- klantdata (bijvoorbeeld een bestand zoals customers.csv),
- omgevingsbestanden zoals .env.
Belangrijk is de gedachte erachter: afzonderlijk bekeken lijkt elk onderdeel “normaal” (een formulier invullen, of een mapping aanreiken). Samen vormen ze echter een route naar het uitleveren van gevoelige lokale bestanden.
De “integrity_checker”-val: hoe de lokroep eruit kan zien
In het referentie-voorbeeld adverteert een server een schijnbaar normale tool, zoals integrity_checker. Deze tool heeft vier ogenschijnlijk keurige, lege of generieke velden (in de beschrijving: alpha tot delta). In de eerste fase bevat die beschrijving nog geen directe verwijzing naar gevoelige bestandsnamen.
Later levert een tool-scanresultaat de ontbrekende mapping. Dan vullen diezelfde velden ineens de juiste inhoud: informatie uit lokale bestanden zoals .ssh/id_rsa, proprietary bronmateriaal, klantbestanden en .env. De agent krijgt dan de indruk dat hij alleen een controle- of verificatiestap uitvoert.
De aanvalstypologie die daaruit volgt is dus niet alleen “een tool stelen”, maar een logische keten bouwen waarin meerdere stukjes data en instructie in dezelfde context samenkomen.
GhostSplice MCP vs. “normale” weigeringen
Een van de opvallendste punten uit de disclosure is dat het effect kan verschillen per coding client en per set veiligheidsmaatregelen. De onderzoekers merken op dat eenzelfde model in het ene ontwikkelprogramma kan weigeren, terwijl het in een andere omgeving toch exfiltratie uitvoert.
Dat wijst op een bredere realiteit: veiligheid hangt niet alleen van het model af, maar ook van hoe de client de toolintegraties afhandelt. Denk aan filters, configuratie, en de manier waarop tool-aanroepen worden geautoriseerd.
Wat zeggen de tests over succeskansen?
De disclosure rapporteert resultaten uit controlled API-tests en aanvullende setup-varianten. Bij een test met één “stuk” in de aanvraag lag de gemiddelde naleving lager, terwijl het succes toenam wanneer de instructie in twee delen werd gesplitst.
In de kern komt het neer op twee observaties:
- Bij splitsen in twee stukken steeg de compliance gemiddeld van 42% naar 82% over elf API-geteste modellen.
- Bij splitsen in drie stukken konden sommige combinaties richting 100% gaan in specifieke client-scenario’s.
Tegelijk waarschuwen de onderzoekers dat je de gepubliceerde percentages niet als universele “model-score” moet lezen. Elke regel gaat over een specifieke testconfiguratie. De disclosure noemt ook gevallen waarin getallen in een publiek overzicht op 0% lijken, maar waarin in één test wél gevoelige output is gestuurd, zij het mogelijk met redactie van de meest directe secrets.
Belangrijk: dit is geen “remote hack” van willekeurige agents
GhostSplice MCP werkt niet zoals een traditionele hack waarbij een aanvaller van buitenaf een willekeurige agent volledig kan overnemen. De techniek veronderstelt dat de ontwikkelaar al een MCP-server van een aanvaller heeft aangesloten, of dat de agent toegang heeft tot context waarin de lokale bestanden gelezen kunnen worden.
Met andere woorden: het is vooral een aanval op integratie-trust. Zodra je externe toolservers vertrouwt, kan een kwaadwillende server “data en betekenis” doorgeven op een manier die de agent accepteert.
Hoe kun je GhostSplice MCP beperken?
De defense die uit de disclosure naar voren komt, richt zich voornamelijk op het gedrag van de client. Dat is logisch: de client is degene die tool-aanroepen autoriseert en output verwerkt.
1) Beperk en humaniseer tool-aanroepen
In de beschrijving staat dat de MCP-specificatie clients hoort te laten werken met een mens-in-de-loop: tool-invocations moeten door een gebruiker kunnen worden geweigerd. Daarnaast benadrukt OpenAI’s guidance dat onveilige MCP-servers de kans op prompt-injection vergroten, en dat organisaties custom en third-party integraties moeten vetten.
2) Behandel server-output als data, niet als instructies
Een centraal punt uit ASSET’s advies: zie output van een server als data, niet als nieuwe instructies. Dat betekent concreet dat waarden uit toolresultaten niet klakkeloos mogen doorstromen naar de argumenten van andere tools zonder extra controle.
Voorkom dus ketens waarin “output A” automatisch “input B” wordt. Juist bij GhostSplice MCP zit de kracht in het combineren van fragmenten uit verschillende toolstappen.
3) Voorkom dat mappings automatisch gevoelige velden invullen
Het referentievoorbeeld laat zien hoe een tool met lege, generieke velden later toch gevuld kan worden met lokale geheimen. Een praktische verdedigingsrichting is: beperk welke velden en bronnen mogen worden gebruikt om gevoelige argumenten op te bouwen, vooral wanneer de input afkomstig is van een externe server.
Verwante dreigingen: waarom dit past in een bredere trend
GhostSplice MCP is geen geïsoleerd fenomeen. Het past in een patroon waarin AI-systemen misleid worden via input die op het verkeerde niveau betekenis krijgt. Dat zie je ook bij andere supply chain en integratie-gerelateerde incidenten.
Als je de context van “supply chain” en gemanipuleerde componenten verder wilt verdiepen, kan dit artikel interessant zijn: BdThemes supply chain aanval via JSON: wat je moet weten.
Daarnaast is het nuttig om te bekijken hoe AI-aanvallen in het algemeen werken rond het omzeilen van veiligheidschecks. Daarover lees je meer in AI-aanvallen, Metabase 0-day en backdoors.
Conclusie
GhostSplice MCP laat zien hoe een aanvaller niet alleen probeert “toegang te krijgen”, maar vooral probeert de logica van de agent te manipuleren. Door instructies op te knippen en via MCP tools te verspreiden, kan een AI coding assistant alsnog geheimen verzamelen en terugsturen—zonder dat er één enkel, duidelijk schadelijk commando zichtbaar is.
De beste bescherming zit in client-controles: human-in-the-loop autorisatie, strikte scheiding tussen data en instructies, en extra verifiatie wanneer serveroutput doorstroomt naar volgende toolargumenten. Daarmee verminder je de kans dat “onschuldige” toolfragmenten samen een diefstalketen vormen.
Bron: https://thehackernews.com/2026/08/malicious-mcp-servers-can-split.html
