Sikkerhetsselskapet Adversa AI kaller det strukturelle problemet GuardFall. Det er ikke én konkret feil, men et mønster: agentens tekstbaserte vakt inspiserer en kommando som ser ufarlig ut, mens selve Bash-skallet pakker ut, fjerner anførselstegn og skriver om teksten før den kjøres. Vakten og skallet er uenige om hva som faktisk kjøres, og i det gapet slipper angrepet gjennom.
Triksene er tiår gamle. Bash stammer fra 1989, og teknikkene Adversa bruker, som quote-fjerning og $IFS-manipulering av mellomrom, er velkjente. Utgangspunktet for forskningen var en omgåelse av godkjenningsporten i NousResearch sin hermes-agent, der shell-omskrivinger slapp forbi en denylist på 30 regex-mønstre. Adversa kartla deretter de mest populære open-source kodeagentene og computer-use-agentene per mai 2026, rangert etter GitHub-stjerner.
«Vi testet elleve populære open-source-agenter, deriblant Hermes, OpenCode og Roo-code. Ti lar gapet stå åpent på én av fire måter, og bare én lukker det.» — Omer Ben Simon, lead researcher i Adversa AI
Angrepene er sortert i fem klasser, A til E. Klasse E, «alternative argv-former for samme destruktive effekt», overlever flest vakter fordi det krever at agenten vet nøyaktig hvilke flagg-kombinasjoner som gjør en kommando destruktiv for hvert enkelt binærprogram. Forutsetningene er konkrete: angrepet virker bare hvis språkmodellen samarbeider, og hvis auto-kjøring er på eller sandkassen står i lokal modus. Ber du modellen rett ut om å kjøre rm, nekter den som regel. Ligger den samme kommandoen skjult i et Makefile-mål hentet fra et fiendtlig repo, blir den langt oftere akseptert.
Konsekvensen er en reell forsyningskjederisiko. Leser en utvikler en forgiftet README eller Makefile med en sårbar agent, kan agenten lures til å eksfiltrere AWS-nøkler eller viske ut hele utviklingsmiljøet, spesielt i CI-pipelines der «auto-yes» er standard. Continue var den eneste agenten som holdt stand: av 21 innsendte omgåelser nådde null helt fram, og alle tolv destruktive standardtilfeller ble korrekt nedgradert til å kreve godkjenning.
Den eneste varige løsningen er at vedlikeholderne bygger inn en Continue-lignende evaluator som tokeniserer og kanonaliserer kommandoen inne i agenten, slik at vakten ser det samme som Bash faktisk kjører. Alt annet er stopgap.
Hva bør du gjøre?
Det sterkeste strakstiltaket er å kjøre agenten fra et scoped shell med $HOME omdirigert. En enkel wrapper som HOME=$HOME/.agent-sandbox-$RANDOM agent … beholder prosjektkatalogen, men fjerner ~/.ssh/, ~/.aws/ og shell-historikken, altså den største flaten for credential-eksfiltrering, og den er alltid på uten noen dokumentert opt-out.
Deaktiver i tillegg auto-yes-modus, gå gjennom konfigurasjonsfiler som følger med repoer du kloner, og blokker agent-kjøring på fork-baserte pull requests. Bruker du Continue, står du sterkest allerede. Kjører du en av de andre ti, behandle disse tiltakene som nødvendige inntil vaktene fikses inne i agenten selv.