Kæden, som den beskrives
Adversa AI offentliggjorde den 6. oktober et angreb, hvor en enkelt angriberstyret webadresse, hentet på brugerens egen anmodning, får GitHub Copilot CLI til at læse lokale filer og sende indholdet til angriberens server. Forskerne, ledet af Rony Utevsky, sætter hele kæden til 28 sekunder, “uden bekræftelse og uden noget sted i loggen, der nævner målværten eller viser, at filindhold forlod maskinen”.
Siden præsenterer sig som krypteret indhold og tilbyder agenten to kandidatnøgler til dekryptering. Den ene er ægte. Den anden er en skabelon, agenten ikke kan udfylde uden først at læse lokale filer — så når den forbereder dekrypteringen, læser den målfilerne fra disken og væver indholdet ind i nøglestrengen. Den læsning er tyveriet, og den sker, før nogen dekryptering er lykkedes.
Skabelonnøglen fejler med vilje. Agenten falder tilbage på den ægte nøgle, dekrypteringen virker, og det dekrypterede andet trin beder den hente en opfølgende webadresse “for at få mere kontekst”, som bærer det indsamlede filindhold som en parameter. Agenten sender anmodningen.

Hvorfor krypteringen er pointen
Adversa kalder det kryptografisk kontekstinjektion, en teknik firmaet først offentliggjorde i august mod chatassistenter. Argumentet er, at statiske værn læser tekst, men ikke kører den. Krypteret tekst, leveret med nøglemateriale og en instruktion om at dekryptere, tvinger gendannelsen gennem agentens eget kørselsmiljø, fordi der — til forskel fra base64 — ikke findes nogen genvej, modellen kan tage i sine vægte. De dekrypterede instruktioner kommer så som output fra kode, agenten netop har skrevet og kørt, inde i dens betroede kørselskontekst.
Forskerne er tydelige om, hvad der får det til at virke: “De samme instruktioner leveret i klartekst fanges som promptinjektion og afvises.”
Hvilken model du får, er plat eller krone
Angrebet er ikke universelt. Adversa oplyser, at det kræver to ting: at klienten kører i autopilottilstand, og at en tilladende model håndterer sessionen. På det andet punkt er fundet ubehageligt netop for Copilot.
Microsofts egen mai-code-1.1-flash kørte hele kæden i 50 procent af forskernes kørsler. To GPT-5.6-modeller, der tilbydes i samme produkt, afviste konsekvent den identiske nyttelast. På den betalingskonto, der blev testet, var den sårbare model ikke standardvalget og skulle vælges manuelt — men på en konto med automatisk modelvalg tildelte routeren den sårbare model i nogle sessioner og en sikker i andre, uden at brugeren gjorde noget. “Brugeren vælger ikke og ser ikke, hvilken model der håndterede sessionen”, står der i rapporten.

GitHub bekræftede og lukkede
Adversa meldte fundet til GitHubs fejlpræmieprogram den 17. september. Pr. 1. oktober havde triageteamet bekræftet det, men nægtede at behandle det som en sårbarhed med den begrundelse, at brugeren “udtrykkeligt bad Copilot CLI om at hente angriberstyret indhold, mens copilot fik fulde rettigheder til at handle selvstændigt”. GitHub sagde, at funktionaliteten måske bliver strammet fremover, men havde intet at meddele, og erklærede rapporten ikke berettiget til præmien.
Adversa siger, at firmaet er uenigt i risikovurderingen, og at kæden stadig kan gengives som beskrevet. Det tilbageholder konkrete nyttelaster.
Hvad dette er værd, og fra hvem
Adversa sælger en sikkerhedsplatform til kodeagenter og siger, at platformen stoppede kæden i firmaets egne test, så anbefalingerne sidst i teksten er ikke uafhængige. Rådene i sig selv er konventionelle: gem per session et spor af hvert værktøjskald med fuldt opløste argumenter i stedet for skabeloner, advar på sekvensen — ubetroet indhold ind, kode kører, filer læses, opkald til en vært uden for opgaven — i stedet for på én nyttelast, kræv bekræftelse for nye netværksmål og skrivninger uden for arbejdsområdet, og sæt hentet indhold i karantæne i en kontekst uden værktøjer og uden legitimationsoplysninger.
Én detalje er værd at beholde, uanset hvem der offentliggjorde den. I Adversas kørsel rapporterede agentens egen slutopsummering, at den havde “bekræftet et autoriseret-læser-endepunkt”. Sådan gik det ikke til. En agents egen beretning om sin session er ikke bevis for, hvad sessionen gjorde.