Een rood hangslot op een zwart computertoetsenbord als beeld voor digitale beveiliging
Nieuws10 juli · 22:104 min leestijd

GhostApproval misleidt het goedkeuringsvenster van zes AI-codeertools

Beveiligingsbedrijf Wiz vond in zes AI-codeertools een lek dat het goedkeuringsvenster misleidt. Via een symbolische link schrijft de agent een SSH-sleutel buiten je project. Controleer of je op de gepatchte versie zit.

GhostApproval, een lek dat beveiligingsbedrijf Wiz in zes populaire AI-codeertools ontdekte, laat een kwaadaardige repository via een symbolische link het verkeerde bestand in het goedkeuringsvenster tonen, zodat de agent een SSH-sleutel buiten je project wegschrijft. De tools zelf zijn de zwakke schakel: Amazon Q Developer, Cursor, Google Antigravity, Anthropic Claude Code, Augment en Windsurf herkenden allemaal een variant van dezelfde fout.

Voor een ontwikkelteam is het goedkeuringsvenster de laatste rem, de mens die op 'Ja' of 'Nee' klikt voordat de agent iets aanraakt. GhostApproval haalt precies die rem eruit. Eén klik op 'Ja' bij een geprepareerde repo kan een aanvaller toegang zonder wachtwoord geven tot de ontwikkelmachine, en juist daar liggen de sleutels naar je productieomgeving vaak voor het oprapen.

Hoe de aanval werkt

De truc leunt op symbolische links, een decennia-oud Unix-mechanisme. In een kwaadaardige repository zit een bestand dat project_settings.json heet, maar in werkelijkheid doorverwijst naar een gevoelig bestand buiten het project, zoals ~/.ssh/authorized_keys of het shell-startbestand ~/.zshrc. De README bevat een instructie ("werk project_settings.json bij met deze SSH-sleutel") die de agent netjes opvolgt. Omdat de agent de link niet eerst herleidt naar het echte doel, belandt de sleutel van de aanvaller in authorized_keys, en heeft die daarna toegang tot de machine.

Aanvalsketen van GhostApproval: een kwaadaardige repo met een als project_settings.json vermomde symlink laat de AI-agent een SSH-sleutel in authorized_keys schrijven, waarna de aanvaller toegang tot de machine krijgt. Bron: Wiz Research
Aanvalsketen van GhostApproval: een kwaadaardige repo met een als project_settings.json vermomde symlink laat de AI-agent een SSH-sleutel in authorized_keys schrijven, waarna de aanvaller toegang tot de machine krijgt. Bron: Wiz Research

Wiz-onderzoeker Maor Dokhanian beschrijft drie fouten die op elkaar stapelen: de agent volgt de symlink, het venster toont het onschuldige pad in plaats van het echte doel, en sommige tools schrijven zelfs al naar schijf voordat je iets hebt goedgekeurd.

Het venster laat het verkeerde bestand zien

Het pijnlijkste zit in wat het goedkeuringsvenster verzwijgt. In verschillende gevallen herkent de agent intern het gevaarlijke doelwit, terwijl de prompt aan de gebruiker die informatie volledig achterhoudt. In een van Wiz' voorbeelden noteert Claude Code letterlijk dat project_settings.json eigenlijk een zsh-configuratiebestand is, voegt het gevraagde ssh-commando toe, en toont daarna enkel de vraag "Make this edit to project_settings.json? Yes / No".

Screenshot van het goedkeuringsvenster: de agent stelt vast dat project_settings.json in werkelijkheid een zsh-configuratiebestand is en voegt een ssh-commando toe, terwijl de prompt alleen de onschuldige bestandsnaam project_settings.json toont. Bron: Wiz Research
Screenshot van het goedkeuringsvenster: de agent stelt vast dat project_settings.json in werkelijkheid een zsh-configuratiebestand is en voegt een ssh-commando toe, terwijl de prompt alleen de onschuldige bestandsnaam project_settings.json toont. Bron: Wiz Research

De fout zit dus in de tools, niet in de terminal of de shell eromheen. Het bevestigingsvenster hoort een poort te zijn, geen ongedaan-maken-knop. Snyk vat de kern van de oplossing samen: herleid elk pad naar zijn echte locatie voordat je het opent, en waarschuw expliciet als dat doel buiten de werkmap ligt.

Wat je nu moet controleren

Niet elke leverancier reageerde hetzelfde. Cursor kreeg met een kritieke score van 9,8 op 10 de zwaarste beoordeling en dichtte het lek in versie 3.0; Google Antigravity volgde in v1.19.6 en Amazon Q Developer in taalserver 1.69.0.

ToolErnstStatus
CursorKritiek (CVSS 9,8), CVE-2026-50549Gedicht in v3.0
Google AntigravityKritiekGedicht in v1.19.6
Amazon Q DeveloperHoog (CVSS 7,8), CVE-2026-12958Gedicht in taalserver 1.69.0
Claude CodeBetwistSymlink-waarschuwing sinds v2.1.32
AugmentKritiekNog geen patch
WindsurfKritiekNog geen patch

Anthropic betwist dat het om een kwetsbaarheid gaat: wie een map opent, vertrouwt die map en keurt de bewerking zelf goed, dus valt het scenario buiten het dreigingsmodel van Claude Code. Toch voegde het bedrijf al in februari, negen dagen voor de melding van Wiz, een symlink-waarschuwing toe aan het bewerkingsvenster. Augment en Windsurf leverden nog geen patch; Augment houdt vol dat het verwacht productgedrag betreft en geen kwetsbaarheid.

De concrete actie voor devteams: controleer of je op de gepatchte versies zit (Cursor 3.0, Google Antigravity 1.19.6, Amazon Q 1.69.0, Claude Code 2.1.32 of hoger). Gebruik je Augment of Windsurf, waar nog geen fix ligt, wees dan extra terughoudend met het openen van onbekende repositories in een agent. Een snelle check op verdachte doorverwijzingen is find . -type l in de projectmap.

Een patroon, geen los incident

GhostApproval is een ander beest dan de eerdere aanvallen op AI-codeeragents. Waar een geprepareerde bibliotheek AI-agents kwaadaardige code laat uitvoeren tijdens een beveiligingsreview, draait het hier om het goedkeuringsvenster zelf: het scherm waarop je vertrouwt, laat het verkeerde bestand zien. Dezelfde symlink-fout dook eerder al op bij Amazon Q, waar hetzelfde AWS-bulletin naast een MCP-lek ook een tweede fout via een kwaadaardige symbolische link dichtte. Wiz laat nu zien dat dat geen los incident was, maar een patroon dat de hele categorie raakt.

Voor wie AI-agents dieper in de ontwikkelstraat laat meelopen, verschuift daarmee de vraag. Niet langer alleen: kan ik de agent vertrouwen. Maar ook: kan ik het scherm vertrouwen waarop de agent om toestemming vraagt. Zolang een goedkeuring een echt herleid pad laat zien en pas naar schijf schrijft nadat je 'Ja' zei, blijft de mens de rem. Zodra dat venster het verkeerde bestand toont, is die menselijke controle een formaliteit geworden.

Veelgestelde vragen

Alisina Nawabi
Geschreven doorAlisina Nawabi

AI Product Engineer & Solutions Architect

AI-agents veilig laten meewerken

Wil je AI-agents in je ontwikkel- of bedrijfsproces laten meedraaien zonder dat ze onbedoeld buiten hun grenzen komen? Ik ontwerp en bouw die systemen end-to-end, met de mens als echte controle en self-hosted waar dat kan.

Meer informatie

Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.

Genoemde integraties

Dit artikel noemt deze tools. Ik koppel ze op maat aan je eigen systemen.

Verken verder

Concepten

AI-codeeragentsGoedkeuringspoortMenselijk toezichtSandbox-omzeilingAI-codeerassistent beveiligingSymlink-aanvalGoedkeuringsvensterKwetsbaarheid in AI-codeertools

Gerelateerde artikelen

AI-codeeragent veilig instellen: permissies, goedkeuring en een wegwerpbare sandbox
Gids
Uitgebreide gids16 min

25 jul 13:02

AI-codeeragent veilig instellen: permissies, goedkeuring en een wegwerpbare sandbox

Claude Code, Codex en vergelijkbare agents draaien met jouw rechten op jouw schijf. Zo zet je ze vast met deny-regels, een OS-sandbox, een korte allowlist en een wegwerpomgeving voor code die je niet kent.

Disney schrapt GitHub Copilot en zet in op Codex, Claude en Cursor
Nieuws
5 min

30 jul 08:12

Disney schrapt GitHub Copilot en zet in op Codex, Claude en Cursor

Disney schrapt in augustus GitHub Copilot voor zijn Amerikaanse techteams, rolt OpenAI's Codex uit en houdt Claude en Cursor. De reden is niet strategie maar gebruik: acht medewerkers zeiden Copilot zelden of nooit aan te zetten.

Anthropic bevestigt facturatiefout van 16,6 miljoen dollar
Nieuws
5

13 jul 12:12

Anthropic bevestigt facturatiefout van 16,6 miljoen dollar

Anthropic bevestigt dat zijn systeem spookfacturen tot 16,6 miljoen dollar stuurde naar een klant zonder API-gebruik. Een audit vond eerder al 1,7 miljoen aan overfacturering. Waarom Nederlandse bedrijven hun AI-rekening moeten controleren.

AI laten checken wat AI schreef is geen veiligheidslaag, het is dezelfde blinde vlek twee keer
Inzicht
7

11 jul 17:00

AI laten checken wat AI schreef is geen veiligheidslaag, het is dezelfde blinde vlek twee keer

Een tweede AI die de code van de eerste reviewt voelt als een controlelaag. Maar dezelfde promptinjectie die de coder fopt, fopt de reviewer. Onafhankelijkheid, niet intelligentie, maakt een review een review.

Lek in Amazon Q: kwaadaardige repo steelt AWS-sleutels
Nieuws
5 min

26 jun 18:55

Lek in Amazon Q: kwaadaardige repo steelt AWS-sleutels

Een lek in Amazon Q Developer liet een kwaadaardige Git-repository ongevraagd code uitvoeren en AWS-cloudsleutels stelen. Amazon dichtte het, maar het patroon raakt elk bedrijf met AWS en een AI-assistent.

Anthropic haalt TPU-grondlegger Amir Salek binnen voor eigen chips
Nieuws
3 min

22 aug 12:25

Anthropic haalt TPU-grondlegger Amir Salek binnen voor eigen chips

Anthropic haalt Amir Salek binnen, de man die Googles TPU-programma opzette en zeven chipgeneraties afleverde. Hij versterkt het compute-team dat eigen silicium onder Claude moet leggen. Aan de Claude-factuur verandert vandaag niets.