xAI's Grok Build, de codeer-CLI van Elon Musks AI-bedrijf, stuurde complete repositories inclusief .env-bestanden met API-sleutels en wachtwoorden naar een Google-cloudbucket, blijkt uit een wire-analyse van beveiligingsonderzoeker cereblab. De uploadcode zit nog in de huidige versie.
Draai je Grok Build zakelijk op klantcode of je eigen productie-repo, dan moet je elke credential die op die machine stond nu als gelekt behandelen en roteren. De privacy-instelling die je dacht te hebben aangezet, hield de uploads namelijk niet tegen. Dat raakt elk Nederlands bedrijf dat de tool aan een echte codebase liet werken.

Wat de wire-analyse aantoonde
Onderzoeker cereblab leidde Grok Build CLI versie 0.2.93 op macOS door de open-source proxy mitmproxy en publiceerde de volledige netwerkopnames. Op een testrepo van 12 GB verplaatste het kanaal dat Grok's model echt gebruikt (POST /v1/responses) ongeveer 192 kilobyte. Een tweede kanaal (POST /v1/storage) verplaatste 5,10 gigabyte in 73 blokken, zo'n 27.800 keer meer dan de codeertaak nodig had. Alles ging naar een Google-cloudbucket met de naam grok-code-session-traces.
Die upload was niet beperkt tot wat de agent las. cereblab plantte een uniek merkteken in een bestand dat de agent expliciet niet mocht openen, src/_probe/never_read_canary.txt, en vond het intact terug in het opgehaalde Git-bundel. Een Git-bundel draagt de volledige objecthistorie: elke commit, elke versie van elk bestand. Een .env die je ooit committe en later weghaalde, reist zo alsnog mee. In de opgevangen data stond een canary-sleutel (API_KEY=CANARY7F3A9-...) plus een testwachtwoord, onversleuteld en leesbaar.
De privacy-toggle deed niets
De enige zichtbare privacy-knop in Grok Build, ‘Improve the model’, stopte de uploads niet. Na uitschakelen bleef het serverantwoord trace_upload_enabled: true teruggeven en liepen de bundel-uploads gewoon door. Het verschil is fundamenteel: die toggle regelt of xAI je data gebruikt om het model te trainen, niet of je data je machine verlaat. Wie dacht te hebben afgemeld, had alleen toestemming voor later gebruik ingetrokken van data die het toestel al had verlaten.
Wat xAI deed
Na publicatie, die op 14 juli de voorpagina van Hacker News haalde, zette xAI een server-side rem aan (disable_codebase_upload: true) en introduceerde het een /privacy-optie. Vervolgtests wezen uit dat die optie de bewaartermijn regelt, niet de verzending zelf. Elon Musk beloofde publiekelijk alle eerder geüploade data te verwijderen, al is dat niet bevestigd. Er is geen formeel beveiligingsadvies uitgebracht.
Grok Build past in een reeks incidenten die deze maand liet zien hoe AI-codeertools zelf het kanaal worden waarlangs code en secrets weglekken. Vier dagen eerder misbruikte GhostApproval symbolische links om het goedkeuringsvenster van zes AI-codeertools te misleiden. Het verschil bij Grok is dat er geen aanvaller nodig was: het lek zat in het normale gedrag van de tool. Dat verschuift de vraag van ‘is deze tool netjes gepatcht’ naar ‘welke code en sleutels geef ik een extern AI-bedrijf überhaupt in handen’. De ondergrens blijft hoe dan ook gelijk: houd secrets buiten je repo en roteer ze zodra een tool ze kan hebben gezien.
Veelgestelde vragen
Grip op je AI-stack
Ik denk met je mee welke AI-tools je veilig zakelijk inzet en bouw waar nodig self-hosted alternatieven die je code en sleutels binnen je eigen muren houden, van ontwerp tot beheer.
Dit artikel is geproduceerd samen met het Agent Team. Meer over de redactie.
