«Agentkjeding omgår modellens vegring ved å hindre at én enkelt agent forstår hele den ondsinnede arbeidsflyten», skriver sikkerhetsgruppen ReverseC Labs i del to av serien sin om angrepsflaten til kodingsagenter. Demonstrasjonen er konkret: en skill-fil som utgir seg for å synkronisere en NPM-pakke, fordeler angrepet over fire separate agenter og henter ut SSH-nøkler og AWS-legitimasjon fra utviklerens maskin.
Mekanismen utnytter måten skills og subagenter er bygd på. Frontmatter-nøkkelen «when_to_use» får en skill til å utløses automatisk i bestemte samtaler, mens !-syntaksen injiserer dynamisk kontekst som kan kjøre shell-kommandoer når Bash-tilgang er på. Fordi subagenter med vilje deler opp kontekstvinduet, ser ingen av dem hele bildet.
«Agentkjeding omgår modellens vegring ved å hindre at én enkelt agent forstår hele den ondsinnede arbeidsflyten» — ReverseC Labs
Verre: innstillingen disableSkillShellExecution: true skal blokkere direkte bash-kommandoer, men ReverseC viser at kjeding kommer rundt den ved å starte separate Claude-instanser i bakgrunnen med nohup. Angrepet fullføres mens brukeren får melding om en uskyldig ferdigstilling. Forskerne demonstrerte også bakdøring av kode: en skill for validering av Entra ID-tokens la inn en subtil logikkfeil i JWT-sjekken som omdirigerte tokenvalidering til et JWKS-endepunkt angriperen kontrollerte.
For deg som kjører Claude Code med tredjeparts skill-pakker er poenget at en skill-fil ikke er passiv dokumentasjon. Den er kjørbar kontekst med samme rettigheter som agenten din.
Hva bør du gjøre?
- Behandle tredjeparts skills, agent-definisjoner og CLAUDE.md-filer som kode du må lese gjennom før bruk, ikke som ufarlig tekst.
- Slå på tilgangsbegrensninger på verktøynivå og sandkasse agenten fra vertssystemet, slik at en kapret skill ikke når SSH- og skynøkler.
- Behold EDR-overvåking på utviklermaskiner for å fange eksfiltreringsforsøk i etterkant.