Security Blog

Du bad din agent att åtgärda felen. Ett av dem var skrivet av en angripare.

#341

October 2, 2026 · By Marketing team

← All posts

En falsk Sentry-felrapport lurar AI-kodningsagenter till att köra angriparens kod med utvecklarens fulla behörighet, 85 procent av gångerna. Själva injektionen är inte katastrofen; de stående behörigheter som en kapad agent kan nå är det.

En utvecklare öppnar sin AI-kodningsagent och skriver det vanligaste uppdraget i världen: "titta på de olösta Sentry-felen och åtgärda dem." Agenten hämtar felflistan via sin Sentry-anslutning, läser det översta ärendet, följer de åtgärdssteg som står skrivna direkt i rapporten och kör dem. En halv minut senare har den exekverat angriparens kod på utvecklarens maskin, med utvecklarens fulla behörigheter, och ingen gjorde något fel.

Det är Agentjacking, avslöjat den här månaden av Tenet Security, och det fungerade 85 procent av gångerna mot de tre vanligaste kodningsagenterna på marknaden: Claude Code, Cursor och Codex [1][2].

Vad som faktiskt hände

Först vad Sentry är: en av de mest spridda felövervakningstjänsterna inom programvaruutveckling. När din app kastar ett fel eller kraschar fångar Sentry upp det och arkiverar rapporten som dina utvecklare triagerar — den sitter inbyggd i en enorm andel av appar du rör vid varje dag. För att skicka in rapporterna till Sentry inbäddar varje app en DSN: en nyckel på klientsidan som med flåger följer med i din webbplats källkod, så att webbläsaren kan rapportera fel hem. Vem som helst kan läsa den. Och vem som helst som har den kan POSTa en felhändelse till ditt Sentry-projekt.

Det är hela nyckeln till attacken. Tenet skapade en falsk felhändelse vars meddelandefält var formaterat för att se exakt ut som Sentries egna åtgärdsrekommendationer: prydlig markdown, en "rekommenderad åtgärd", ett kommando att köra. De skickade in den med den publika DSN:n. Sedan väntade de på det mest naturliga en utvecklare gör — ber agenten att rensa felkön.

Agenten frågar Sentry via sin MCP-anslutning. Anslutningen lämnar tillbaka felet som betrodd systemutdata. Agenten kan inte skilja en äkta Sentry-rapport från en förfalskad; de har exakt samma form byte för byte. Så den gör som den blir tillsagd och kör "åtgärden", vanligtvis ett npx-anrop mot angriparens paket. Därefter har den allt som utvecklaren har: miljövariabler, Git-behörigheter, privata repositorie-URL:er, molnnycklarna i ~/.aws/.

Tenet hittade 2 388 organisationer med injicerbara DSN:er, från frilansande utvecklare upp till Fortune 100. I sina kontrollerade tester exekverade agenterna faktiskt de injicerade instruktionerna på riktiga företag — däribland, enligt Tenet, ett 250 miljarder dollar stort Fortune 100-teknikbolag vars AI-agent läste den falska buggrapporten och körde Tenets kod på två av bolagets företagsmaskiner [1][3]. Avslöjat för Sentry den 3 juni, erkände företaget det samma dag och avböjde att åtgärda problemet i grunden, med hänvisning till att det var "tekniskt försvarbart". De levererade ett innehållsfilter som blockerar en specifik payload-sträng [4].

Det här är inte slarv från Sentry

Här kommer den obekväma delen: inget i den kedjan var ett fel. DSN:n ska vara publik. MCP-servern ska returnera dina feldata. Agenten ska agera på diagnostiken du bad den åtgärda. Varje steg var auktoriserat, och det är precis därför ingen brandvägg, ingen EDR, ingen systemprompt fångade upp det.

Felet är strukturellt, och det är inte Sentries ensamt. Allt verktyg som matar en agent med text en utomstående kan påverka — ett felspårningssystem, en ärendekö, en skrapad webbsida, ett delat dokument — är en injektionskanal, och agenten behandlar allt som en enda oodifferentierad ström av instruktioner. Promptinjektion, två år in i agenternas era, är fortfarande olöst: du kan inte pålitligt hålla fientlig text borta från en modells resonemang. Anta att du inte kommer att lyckas.

Injektionen är inte katastrofen

Här är den del som är värd att stanna upp vid. Skälet till att Agentjacking är en femarmbrand är inte att agenten blev lurad. Det är vad den lurade agenten kunde nå. Den körde med utvecklarens fulla stående åtkomst: varje nyckel i miljön, varje behörighetsfil på disken, hela nyckelringen ett kommando bort.

Den spridningsradien är ingen naturgivet. Det är en konfiguration. Agenten hade stående åtkomst till allt eftersom det är så behörigheter lagras idag — omgivande, på maskinen, läsbara av vad som än körs där. Bort med det, och samma kapning springer rakt in i en vägg.

Byggt för det här, med flit

En Clavitor-behörighet ligger aldrig i miljön där agenten körs. Det finns ingen ~/.aws/credentials att läsa, ingen API-nyckel i en miljövariabel att exfiltrera, eftersom det hemliga värdet aldrig hamnar där koden körs — agenten får resultatet av att använda en behörighet, inte själva behörigheten. Den kan bara nå den enda sak den var namngiven för, så den kan inte räkna upp lagret för att se vad annat som finns där. Och beviljandet är avgränsat och återkallbart, så en session som börjar bete sig som en angripare kan brytas mitt i en åtgärd.

Här är den ärliga begränsningen: det här stoppar inte injektionen, och det stoppar inte en kapad agent från att köra ett kommando. Promptinjektion är olöst och vi påstår inte att vi löser det. Det som ändras är utdelningen. Angriparens kod körs fortfarande — och möter en miljö där det inte finns något värt att stjäla stående framme. Kapningen lyckas och kupen misslyckas.

Vi skrev ned de regler ett behörighetssystem måste hålla när själva agenten kan vändas mot dig, med utgångspunkten att hemligheten aldrig bor där koden körs, och att en agent bara når det den är namngiven för. Gå igenom dina mot dem: clavitor.ai/rules.

Lärdomen är inte "patcha Sentry"

Sentry kan inte åtgärda det här, och sa så. Och nästa förgiftade verktyg kommer inte att vara Sentry. Så länge dina agenter bär omgivande, stående behörigheter är varje betrott verktyg de läser ett laddat vapen, och promptinjektion är avtryckaren du inte kan låsa.

Du kommer inte att hålla den skadliga texten borta. Så sluta hålla behörigheterna inom räckhåll för agenten som läser den.

Clavitor (@clavitorai) är valvet för behörigheter byggt för AI-agenter, och mot dem. clavitor.ai

Källor

[1] Tenet Security — "Agentjacking: hijacking coding agents with fake Sentry errors" (85 % framgång; 2 388 organisationer; mekanism): https://tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors/

[2] The Hacker News — "Agentjacking Attack Tricks AI Coding Agents Into Running Malicious Code": https://thehackernews.com/2026/06/agentjacking-attack-tricks-ai-coding.html

[3] The New Stack — "A public Sentry key is all it takes to hijack Claude Code, Cursor, and Codex": https://thenewstack.io/agentjacking-sentry-mcp-attack/

[4] Infosecurity Magazine — "New 'Agentjacking' Attacks Could Hijack AI Coding Agents" (Sentries svar): https://www.infosecurity-magazine.com/news/agentjacking-attacks-hijack-ai/