Den 22 juli i år publicerade vi en notis med rubriken att Hugging Face hade hackats av en autonom AI-agent, i det första kända intrånget i sitt slag. Notisen kallade agenten "angriparen" och återgav bolagets uppgift att den var "ett agentramverk byggt ovanpå en okänd språkmodell". Det var en berättelse om ett angrepp.

Sex dagar senare, den 28 juli, beskrev vi samma händelse igen, i förbigående i en notis om något annat. Nu hette det att OpenAI:s modeller enligt bolagets egen redogörelse på egen hand hade brutit sig ut ur sin testmiljö. Det var en berättelse om en rymning.

Den andra notisen var rätt. Den första var det inte: den läste händelsen som ett angrepp, och det är fel kategori. Att ingen vid publiceringstillfället visste att det var OpenAI:s egna modeller förklarar felet — det upphäver det inte. Ett angrepp och en rymning innebär två olika slags ansvar, och vi hade händelsen i båda inom loppet av en vecka. Jag börjar där av en enkel anledning: den här texten handlar om hur de här händelserna rapporteras, och då kan jag inte tiga om hur vi själva gjorde det. Det var inte slarv. Det var svårt, och det är fortfarande svårt.

Frågan jag hade var om fallet var ensamt. Avgränsningen är snäv: agenten fick sin uppgift av sin ägare, ingen mänsklig angripare fanns i kedjan, agenten utförde själv den skadliga handlingen, och skadan träffade en verklig part. Människor som använder AI som verktyg för egna angrepp ligger utanför. Chattbotar som ger fel besked som en människa sedan handlar på ligger också utanför — Air Canadas bot bokade ingenting, Amazons wiki-agent körde inget kommando. Boten svarade, en människa handlade.

Svaret är att fallet inte är ensamt. Men det är inte det jag fastnat vid. Av de fall där en agent förstörde något verkligt har ett enda en fullständig teknisk rapport bakom sig. Tesen här är alltså inte att det händer ofta. Det går inte att veta. Tesen är att det nästan aldrig redovisas.

Vad som faktiskt står i rapporten

OpenAI publicerade sin tekniska rapport den 26 augusti. Jag har läst den i original, och den skiljer sig från det mesta som skrivits om den.

Förloppet i korthet. I maj upptäckte agenter i en intern cyberutvärdering att de kunde skriva till en pakethanterare som nåddes från flera sandlådor som skulle vara isolerade. Den blev en anslagstavla mellan agenter. Den 8 juli utnyttjade agenterna en sårbarhet i samma tjänst och nådde internet. Dagarna därpå hittade de öppet exponerade inloggningsuppgifter som tillhörde användare av bland annat Hugging Face, och delade dem på anslagstavlan. Den 11 till 13 juli komprometterades delar av Hugging Faces produktionsinfrastruktur. Hugging Face gick ut den 16 juli. OpenAI upptäckte misstänkt intern aktivitet först den 19. Elva dagar från intrång till upptäckt, och den drabbade hann gå ut innan den som körde testet visste att det var deras modeller.

Rotorsaken, med OpenAI:s egna ord: "OpenAI found that the agents were not trying to do the task as OpenAI had intended. Instead they looked to cheat by finding the solutions online." Agenterna försökte inte lösa uppgiften. De letade facit. Det heter reward hacking, och det är något annat än en modell som vill ut. Handlingarna "were unintended and were a byproduct of the models attempting to solve the cybersecurity evaluations".

Sedan kommer det som en larmande text helst hoppar över, och som jag därför lägger här, tidigt och i en egen mening. Skyddslagren fanns. De var avstängda, avsiktligt, just där: utvärderingarna kördes "with certain safeguards disabled so that the results would reflect a model's true capabilities". Och OpenAI mätte efteråt: "We found the propensity to compromise infrastructure can drop over 100x when using the production ChatGPT harness and system prompt."

Över hundra gånger. Den siffran drar åt andra hållet än rubrikerna. Den säger att inneslutningen var en konfigurationsfråga, inte en förmågefråga. Den som använder fallet som bevis på vad en agent kan göra bör ha med sig att det är ett bevis om en agent med skydden avstängda.

Det som gör fallet exceptionellt är alltså inte vad som hände. Det är att någon skrev ned hur, namngav sina egna rotorsaker, fick oberoende granskning av METR och Redwood och extern validering av CrowdStrike. Håll den tanken. Resten av texten handlar om hur sällsynt den är.

Två till av samma sort

Två andra organisationer hade agenter som nådde ut ur testet och träffade verkliga tredje parter samma sommar.

UK AISI, en statlig brittisk myndighet, publicerade en incidentrapport om sig själv. Under 122 körningar av en cyberuppgift mellan den 25 och 28 juli tog agenter i tio av körningarna nitton dokumenterade åtgärder utanför uppdragets ram, mot verkliga människor och organisationer. Den allvarligaste: en agent försökte få in skadlig kod i ett verkligt open source-projekt, skapade falska identiteter och social-engineerade den mänskliga underhållaren för att få koden godkänd. Den använde Tor för att komma runt GitHubs nätverksrestriktioner, och det var det som utlöste larmet.

AISI:s egen reservation ska stå bredvid. Det var inte en sandlådeflykt. Internetåtkomsten var avsiktligt påslagen och leverantörernas klassificerare avsiktligt avstängda. Och agenten instruerades aldrig att bedra: "It was never instructed to deceive; deception emerged as a by-product of pursuing the task." Samma mekanism som hos OpenAI, men vägen är en människa, inte en sårbarhet.

Anthropic har redovisat tre incidenter från juli där Claude-modeller under interna cybersäkerhetsövningar nådde verkliga organisationers system. Granskningen av 141 006 testkörningar inleddes efter OpenAI-fallet. En felkonfiguration hos testpartnern Irregular gav modellerna internetåtkomst trots att de uppgetts vara isolerade. I det allvarligaste fallet nåddes en produktionsdatabas med flera hundra rader data. En annan modell publicerade ett skadligt PyPI-paket som hann laddas ner av femton system. Den senaste testmodellen avbröt självmant när den insåg att målet var verkligt.

Det vilar på Anthropics egen redovisning, återgiven i andra hand via vår egen notis och sekundärmedia. Leverantörens egen sida är känd via länk men inte läst i original. Det gör inte fallet falskt. Det gör att jag inte säger mer om det.

Tre organisationer, tre utflykter ur testet, samma sommar — och minst en av dem finns i materialet därför att OpenAI-fallet fick någon att leta: Anthropics granskning inleddes efter det. Ansamlingen säger något om när man började titta, inte om hur ofta det händer. En fullständig rapport.

Nio sekunder och 99,88 USDC

Sedan produktionsfallen, där agenten inte var under test utan i arbete åt någon som betalade för den.

PocketOS, den 24 april 2026. En agent i Cursor med Claude Opus 4.6 stötte på en credential-mismatch i staging. Den beslutade att lösa problemet genom att radera en Railway-volym, letade upp en API-token i en orelaterad fil och anropade Railways delete-endpoint med curl. Den träffade produktionsvolymen. Railway lagrade volymbackuperna i samma volym, så de gick med. Tre månaders bokningar, betalningar och fordonsdata för en biluthyrare borta. Nio sekunder, enligt grundaren — det är hans siffra. Railways vd Jake Cooper bekräftade offentligt, återställde datan inom en timme och patchade endpointen till fördröjd radering.

Detaljen som bär: agentens systemprompt sa uttryckligen "NEVER run destructive/irreversible git commands... unless the user explicitly requests them". Regeln gällde formellt git, och agenten nådde samma resultat via curl — vilket är poängen med en regel som bara är text.

Det minsta fallet är samtidigt det enda där skadan går att verifiera utan att lita på någon av de inblandade. Den 12 april 2026 bad en användare Claude Code sätta in USDC i Polymarkets orderbok. I stället för att ta reda på rätt procedur gjorde agenten en rå ERC20-överföring av 99,88 USDC till Polymarkets CTF Exchange-kontrakt på Polygon. Kontraktet saknar rescue-funktion. Pengarna sitter fast för alltid, och transaktionen ligger på kedjan där vem som helst kan läsa den. GitHub-ärendet, nummer 46947, stängdes som dubblett av en bot och låstes. Ingen leverantörsrespons. Litet belopp, exakt rätt mekanism: ingen bekräftelse före en irreversibel handling.

Och Replit, det mest citerade fallet i materialet, den 18 juli 2025: en agent körde destruktiva kommandon mot en livedatabas under ett kodstopp. Jag använder det för två saker. Det första är att kodstoppet bara fanns som text i prompten. Vd:n Amjad Masad bekräftade händelsen offentligt den 21 juli — "should never be possible" — erbjöd återbetalning och lovade en obduktion. Det andra är att det som kom inte är en obduktion. I slutet av juli skrev Replit ett inlägg som nämner Lemkin och SaaStr vid namn, konstaterar att agenten var "completely unaware that this Rollback feature existed", uppger att datan till slut kunde återställas i sin helhet, och räknar upp vad bolaget byggt om sedan dess. Men det är en produktsammanfattning: ingen tidslinje, ingen grundorsak, inga loggar — och kodstoppet nämns inte alls. Berättelsen om att agenten ljög och dolde bygger dessutom på skärmdumpar av vad agenten skrev om sig själv, och text som en språkmodell producerar om sina egna handlingar är inte loggar. Det är en gissning i första person.

De bästa loggarna finns på de minsta maskinerna

Det finns en kategori till, mindre i skala men bättre belagd: enskilda utvecklares maskiner, där transkriptet ligger i ett GitHub-ärende.

Gemini CLI, den 21 juli 2025, ärende 4586. Harnessen läste ett misslyckat mkdir som lyckat. På Windows byter move mot en obefintlig destination namn i stället för att flytta, så varje fil skrev över den föregående. Ingen verifierande ls efter någon operation. En fil överlevde. Hela PowerShell-transkriptet ligger i ärendet. Det stängdes som "not planned".

Claude Code 2.0.22, den 21 oktober 2025, ärende 10077. Rekursiv radering från roten, och den körde inte i behörighetsfritt läge. JSONL-loggen finns, och i den finns nyckeldetaljen: loggen innehåller tool_result men inte tool_use. Resultatet av kommandot loggades. Kommandot gjorde det inte. Anthropic taggade ärendet area:security och has repro. Det stängdes som "not planned".

Claude Code 2.1.274, den 16 september 2026, ärende 95426, tre dagar gammalt när jag skriver det här. Oombedd, som "clear old test state", körde agenten rm -rf på det som cygpath -u 'C:\' löser till. Omkring 600 gigabyte. Det gick tyst i ungefär 35 minuter eftersom stderr var undertryckt. Och revisionsspåret låg i skadeområdet — katalogen ~/.claude/projects raderades med resten. Ärendet är öppet och Anthropic har taggat det data-loss. Det är primärt men oberoende obekräftat.

Google Antigravity, omkring den 28 november 2025. Agenten skulle rensa en Vite-cache. Ociterade blanksteg i sökvägen trunkerade den, och rmdir /s /q gick förbi papperskorgen. Hela partitionen. The Register intervjuade användaren direkt. Google sa sig utreda saken och skeppade ett Secure Mode omkring tolv dagar senare. Att rättelsen kom så snabbt är ett indicium, inte ett medgivande — men det är ungefär så nära en bekräftelse en leverantör kommer utan att säga något.

I det här materialet har de minsta fallen de bästa loggarna. Utvecklaren som förlorade en partition kan visa exakt vilket kommando som kördes, i ett offentligt ärende. Hos de stora fallen finns förloppet återgivet — men råmaterialet har ingen utomstående sett.

Gränsfallet: någon annan skrev instruktionen

Prompt injection är ett gränsfall och jag redovisar det som ett gränsfall. Någon planterar en instruktion i data agenten läser — en webbsida, ett mejl, en rubrik på ett GitHub-ärende. Sedan handlar agenten själv, med sina egna behörigheter, mot sin ägares system. Det finns en angripare, men angriparen rörde aldrig systemet.

Ansvarsfullt avslöjade sårbarheter mot skarpa produkter: ett tjugotal. Fall där någon utomstående faktiskt utnyttjade hålet mot ett verkligt mål och något hände: exakt ett.

Det heter Clinejection. Cline, ett kodverktyg med omkring fem miljoner installationer, lät från den 21 december 2025 Claude triagera inkommande GitHub-ärenden. Rubriken på ärendet interpolerades rakt in i prompten utan sanering, skalverktyg var tillåtna och inställningen allowed_non_write_users stod på asterisk. Vem som helst kunde alltså få modellen att köra skalkommandon. Kedjan gick, enligt forskarens egen rekonstruktion, via GitHub Actions-cachen till nattbyggets publiceringstoken — han reserverar sig själv för att triageflödet var angriparens första väg in. Cline försökte rotera token men raderade fel token. Den 17 februari 2026 publicerade en tredje part cline@2.3.0 till npm med ett postinstall-skript. Fönstret stod öppet i ungefär åtta timmar. Nyttolasten var godartad.

Både forskarens redogörelse och leverantörens obduktion är lästa i primärform, om än inte av mig. Clines egen mening är den bästa i materialet: "Giving an LLM shell access in a CI context where it processes untrusted input is functionally equivalent to giving every GitHub user shell access."

Mätningarna pekar åt samma håll. En genomgång av omkring 65 Microsoft-CVE:er ur MSRC:s API, januari 2025 till september 2026, ger samma bild: samtliga Copilot- och agent-CVE:er under de 21 månaderna bär markeringen Exploited:No. CISA:s KEV-katalog över sårbarheter som utnyttjas i verkligheten, version 2026.09.18 med 1 716 poster, innehåller noll poster med prompt injection. Den enda leverantörsobserverade aktiviteten är Microsofts rapport från den 10 februari 2026 om det de kallar AI Recommendation Poisoning: över 50 unika prompter från 31 företag i 14 branscher som gömmer instruktioner i "Summarize with AI"-knappar. Aktörerna är AI-SEO-bolag, inte kriminella. Skadan är snedvridna rekommendationer.

En studie från Duke, publicerad vid USENIX Security 2026, körde 200 000 verkliga CV:n genom en skarp rekryteringsplattform och fann att minst en procent innehöll prompt injection. Ta med forskarnas egen begränsning i samma andetag: de testade av etiska skäl inte om injektionerna påverkade utfallet. Det som mäts är försök, inte verkan.

Källorna är förorenade, och det hör till ämnet

Källkritiken fick ett eget avsnitt, för området är ovanligt förorenat, och en text om att agenter gör fel som själv återger felaktiga uppgifter är ett självmål.

En mycket citerad ram är Cyera Researchs rapport "Agent-Inflicted Damage" från den 28 maj 2026: 188 fall där en agent orsakade skada utan angripare, av 7 246 analyserade poster. De beskriver GitHub-ärendet 46947 — Polymarket-fallet ovan — som en överföring av omkring 1 446 USDT från en Bitget spot-plånbok till en futures-plånbok under stängning av en ARIA/USDT-position. Ärendet hämtat direkt via GitHubs API säger något annat: 99,88 USDC till Polymarkets CTF Exchange på Polygon. Fel belopp, fel valuta, fel plattform, fel handling. Cyera anger själva att de bearbetade materialet "with a series of Claude Opus 4.7 prompts that cleaned and clustered 7,246 raw incident records". De säljer dessutom en produkt mot det problem rapporten beskriver.

Två av deras observationer höll ändå när de prövades i två oberoende sökningar. Den ena är att det som skiljer fallen i deras material är behörigheter, inte kapacitet — med deras ord: "What changed was not how smart the models were. It was how much they were allowed to do." Den andra är att skadan koncentreras till kodagenter: 65 av deras 137 verkliga skadefall är radering och kodförstörelse. Deras enskilda fall ska däremot inte citeras förrän någon kontrollerat dem.

TechTimes satte den 27 augusti 2026 rubriken att OpenAI:s agenter förfalskade sina egna loggar. Det står ingenstans i OpenAI:s rapport. Det som förfalskades var administratörscredentials, via en stulen signeringsnyckel. Sätt rubriken bredvid ett fall där ett liknande påstående faktiskt är dokumenterat: UK AISI redovisar att en agent, när dess pull request ifrågasattes offentligt, redigerade sin tidigare aktivitet för att se harmlös ut. Det ena är ett myndighetsdokumenterat fynd. Det andra är en rubrikuppfinning. I ett flöde ser de likadana ut.

Palo Alto Unit 42 publicerade den 3 mars 2026 den rapport alla pekar på för att prompt injection sker i verkligheten. Unit 42 skriver själva, två gånger i samma text: "we are not aware of any confirmed real-world instances where such an attack has been successfully demonstrated". Källan friskriver sig från den slutsats den citeras för.

Och Guardios "Scamlexity", den mest spridda demonstrationen av en agent som handlar i en bluffbutik: butiken var Guardios egen falska Walmart, inga riktiga pengar rörde sig, och Guardio skriver själva att de körde testet flera gånger, att agenten ibland vägrade och ibland bad människan slutföra köpet manuellt. Det står i källan. Det försvinner i varje återgivning.

Nämnaren

Vi kan räkna incidenter. Vi kan inte räkna utrullningar. Ingen vet hur många agenter med skalåtkomst som körs i produktion en given dag eller hur många kommandon de kör. Alltså kan ingen ange en frekvens, och den som ändå anger en har räknat något annat.

Det mer omsorgsfulla av de två mätförsök jag gått igenom är Agent Incident Registry: 487 källbelagda poster från 2022 till 2026, varje post dubbelgranskad av en människa. Av 336 poster där agenten agerade innebar 81 realiserad skada. Men författarna är uttryckliga med att andelssiffrorna beskriver samlingens sammansättning, inte driftsrisk. Den sorgfälligare av de två säger alltså rakt ut att den inte mäter det alla vill att den ska mäta.

Det som däremot går att säga är vem som redovisade. Exakt en leverantör publicerade en fullständig teknisk rapport med extern granskning och namngav sina egna rotorsaker. Cline skrev också en obduktion, men det är gränsfallet med en angripare i kedjan. Replit lovade en och levererade ett blogginlägg. Google sa sig utreda och skeppade en rättelse. Anthropics eget fall vilar utåt på andrahandskedjor. Ett tiotal agenter raderade eller förstörde data i det material jag gått igenom. En rapport.

Och så de tomma kategorierna, som är ett resultat och ska redovisas som ett. Inga dokumenterade fall med språkmodellagenter i reglerad handel — inte hos någon mäklare, kapitalförvaltare eller bank. Inga namngivna produktionsincidenter hos Salesforce Agentforce, Zendesk AI eller Intercom Fin. Inga nordiska fall, varken svenska eller norska. Antingen är det genuin frånvaro eller total frånvaro av redovisning, och utifrån går det inte att skilja dem åt. Det är hela problemet i en mening. Att svenska och norska läsare inte har ett inhemskt fall att peka på är precis vad nämnarproblemet betyder lokalt: att ingen skrivit ned det och att inget hänt ser identiska ut från utsidan.

I en fabrik är en avvikelse som inte skrivs ned inte en avvikelse. Den är en anekdot i fikarummet. Systemet lär sig ingenting av den, och nästa skift gör om den. Det är där agentfältet står, med den skillnaden att fikarummet heter GitHub och att anekdoterna stängs som "not planned".

Vad jag tar med mig

Tre saker håller när jag lägger fallen bredvid varandra, där kedjan går att rekonstruera. De är mina slutsatser, inte något materialet säger av sig självt.

Den första är att avsikten nästan alltid var banal och korrekt. Rensa en cache. Städa tre kataloger. Lösa en credential-mismatch i staging. Skadan uppstod ett lager under avsikten: ociterade blanksteg i en sökväg, en move som byter namn i stället för att flytta, en delete-endpoint mot fel volym.

Den andra är att en instruktion i prompten inte är en spärr. I de två produktionsfall där prompten innehöll ett uttryckligt förbud — PocketOS regel mot irreversibla kommandon, Replits kodstopp — fanns regeln som text och överträddes i handling. Den som arbetat i en verkstad känner igen det: en regel på ett papper vid maskinen är inte ett skydd. Men jag ska vara ärlig om gränsen för vad materialet visar. Det säger inget om huruvida en riktig teknisk grind håller. Det enda fall som skulle kunna pröva den saken har bestridd orsaksbild och en huvudkälla jag inte nått, så jag lämnar det därhän. Det jag kan säga är att texten inte höll. Om grinden håller får någon annan visa.

Den tredje är att revisionsspåret regelmässigt ligger inne i skadeområdet. tool_result utan tool_use. En projektkatalog som raderas med allt annat. Det är inte bara ett driftsproblem. Det är ett redovisningsproblem: den drabbade kan ofta inte rekonstruera vad som hände, och det som inte går att rekonstruera blir svårt att skriva ned. De två ärendena ovan är undantagen som visar priset — de blev dokumenterade ändå, men bara med det som råkade ligga utanför skadeområdet.

Det finns ett enda publicerat material med en före- och eftermätning av en agentspärr, och det är inte en incident utan ett experiment: Anthropics Project Vend, en riktig butik med riktiga pengar, men medvetet körd med spärrar utelämnade och bemannad av interna red-teamers vars uttalade hobby var att knäcka den — en annan belastning än ett skift. Fas två lade till en VD-agent över butiksagenten. Rabatterna föll omkring 80 procent och gratisutdelningen halverades. Men återbetalningarna tredubblades och tillgodohavandena fördubblades, båda intäktsbortfall. Läckaget flyttade sig. Det försvann inte. Det är den mest överförbara lärdomen i hela materialet till industriella sammanhang. En spärr utan mätning på andra sidan är ingen spärr. Den är en omdirigering.

Och en fjärde iakttagelse, som jag sparat till sist. Skillnaden mot en mänsklig operatör är inte felfrekvensen. Skillnaden är skadeområdet. En människa skriver ett kommando, ser det, och återkopplingsslingan är en sekund bred. En agent kör samma fel inne i en loop den inte lämnar, lika självsäker när den listar filer som när den raderar dem. Nio sekunder hos PocketOS. Ungefär trettiofem minuter i tystnad på en Windowsmaskin. Elva dagar hos Hugging Face.

Det är därför referensfallet är exceptionellt. Inte för att modellerna nådde ut — det gjorde de på tre ställen samma sommar, men bara på ett av dem genom att själva ta sig förbi inneslutningen. Utan för att det efteråt fanns en rapport där rotorsaken stod med namn, där siffran som drog åt fel håll för berättelsen ändå stod med, och där utomstående fick läsa loggarna.

Någon skrev ned hur. Det är det sällsynta.