Waar Wiz' Agent Daadwerkelijk Is Binnengedrongen

Wiz bouwde een autonome AI-agent genaamd Red Agent om net als een menselijke pentester naar bruikbare fouten te zoeken en daar vervolgens naar te handelen. Gericht op Snowflakes publieke GitHub-repositories vond de agent een script-injectiefout in een GitHub Actions-workflowbestand genaamd jira_issue.yml binnen snowflakedb/snowflake-connector-net, Snowflakes open-source .NET-connector. Door de fout kon iedereen een GitHub-issue openen met een speciaal geprepareerde titel en zo Snowflakes eigen automatisering een deel van die titel als shellcommando laten uitvoeren, zonder in te loggen.

De eerste poging van Red Agent mislukte. De runner gaf een syntaxisfout terug in plaats van de payload uit te voeren. In plaats van te stoppen, las de agent de foutmelding, herschreef zelfstandig de geprepareerde issuetitel en probeerde het opnieuw. De tweede poging brak uit de shellstring en bereikte een domein onder controle van de aanvaller, waarbij een base64-gecodeerd Jira-API-token werd geëxfiltreerd. Ontdekking, aanpassing, exploitatie en verificatie van de verkregen toegang gebeurden allemaal in een enkele sessie, zonder dat een mens de volgende stap bepaalde.

Het gestolen token was geldig en geauthenticeerd als een Snowflake-serviceaccount, wat leestoegang gaf tot een interne Jira-omgeving met projecten voor engineering, beveiligingscompliance en bug bounty-tracking. De kwetsbare code stond live sinds de merge van PR #1218 op 18 juni 2026, die een veilig parsingpatroon verving door directe variabele-interpolatie in een shellcommando. Snowflake patchte het op 23 juni 2026, herstelde het veilige patroon, en trok het blootgestelde token in en vernieuwde het; een controle van de logs vond geen bewijs dat een externe partij het tijdens het vijfdaagse blootstellingsvenster had gebruikt.

Wiz Noemde Copilot Medeauteur van de Bug

Wiz' oorspronkelijke verslag wees naar de commit die de fout introduceerde en merkte op dat GitHub Copilot Autofix daarin als medeauteur voorkwam. Het verhaal schreef zichzelf: een AI-codeerassistent leek te hebben meegeschreven aan precies de bug die een AI-beveiligingsagent vervolgens autonoom vond en misbruikte, aan beide kanten.

De medeauteursregel was echt, en squash-merges laten dat soort bewijs solider lijken dan het is. Een pull request kan veel individuele commits van veel bijdragers bevatten, maar een squash-merge voegt ze allemaal samen tot een enkele commit op de hoofdbranch, en elke medeauteursregel van elk van die commits reist mee naar het samengevoegde resultaat. Een naam op die regel registreert deelname ergens in de pull request, geen auteurschap van een specifieke regel. Tegen de tijd dat Wiz het bericht op 17 augustus 2026 bijwerkte, was de eigen formulering al afgezwakt tot de erkenning dat onduidelijk was of Copilot ook maar iets had bijgedragen aan de kwetsbare regels.

GitHubs Commitgeschiedenis Zegt Dat Een Mens Het Schreef

GitHub voerde een eigen intern onderzoek uit naar dezelfde repository en kwam tot een andere conclusie. Volgens GitHub schreef een menselijke Snowflake-ingenieur de onveilige refactor, in een aparte commit gedateerd 25 augustus 2025, ongeveer tien maanden voordat de kwetsbare pull request werd samengevoegd, en heeft Copilot Autofix die specifieke regels noch beoordeeld noch eraan bijgedragen.

Copilots daadwerkelijke medeauteurscommit binnen pull request #1218 wijzigde een ander bestand, jira_close.yml, dat niets te maken had met de kwetsbare jira_issue.yml-regels die Red Agent misbruikte. Toen de pull request werd samengeperst tot een enkele mergecommit, reisde Copilots medeauteursregel toch mee, gekoppeld aan een wijziging die het nooit had aangeraakt.

Het geschil staat nu openbaar met twee onverenigbare lezingen en geen onafhankelijke scheidsrechter. Wiz wijst naar een medeauteursregel in de levende commitgeschiedenis; GitHub wijst naar een intern onderzoek van dezelfde repository dat het auteurschap anders leest. Niemand buiten de twee bedrijven heeft de toegang die nodig is om te bepalen welke lezing juist is.

De Governancekloof Die Elk AI-Ondersteund Team Zou Moeten Opmerken

Een AI-codeerassistent en een AI-beveiligingsscanner in dezelfde pipeline draaien wordt snel de standaardopzet, niet de uitzondering. Als er onder die opzet iets misgaat, kunnen zowel de partij die de bug vindt als de tool die ervan wordt beschuldigd hem te hebben geschreven allebei AI-systemen zijn, en het enige bewijs waarop beide partijen kunnen terugvallen is de commitgeschiedenis van een repository. Die geschiedenis is maar zo betrouwbaar als de praktijken die haar hebben voortgebracht, en een routinematige squash-merge heeft net bewezen dat die de naam van de ene bijdrager aan de fout van een ander kan koppelen zonder dat iemand dat bedoelde.

De bug zelf bleef vijf dagen blootgesteld en had nog eens vijf dagen nodig om te worden gepatcht. De discussie over wie hem schreef duurde langer dan de kwetsbaarheid zelf, en die speelde zich af tussen twee leveranciers met de middelen en de repositorytoegang om het goed te onderzoeken. Een bedrijf met minder discipline bij het bewaren van de commitgeschiedenis van zijn eigen workflowbestanden, en zonder een vaststaand antwoord op wie binnen het bedrijf bevoegd is om een toeschrijvingsclaim te publiceren voordat die een openbaar geschil wordt, zal zijn versie niet zo netjes oplossen.