Hopp til hovedinnhold
PULSEN_
ESC Tilbake til strømmen
The Hacker News · 3T SIDEN · sikkerhet

GhostApproval: godkjenningsboksen viser feil fil når kodeagenten følger et symlink

SYNOPSIS_GENERERT

Wiz viser hvordan et symlink i et fiendtlig repo får seks KI-kodeagenter til å skrive angriperens SSH-nøkkel til feil fil, mens godkjenningsboksen navngir en harmløs settings-fil.

Hvor langt skal en kodeagent gå for å beskytte deg mot et repo du selv har valgt å stole på? Sikkerhetsselskapet Wiz publiserte 8. juli funnet de kaller GhostApproval, der seks av de mest brukte KI-kodeassistentene lar seg lure av et symlink-triks: Amazon Q Developer, Claude Code, Augment, Cursor, Google Antigravity og Windsurf. Tre av dem har sluppet fikser, to har erkjent problemet uten å rette det, og Anthropic avviser at det er en feil. The Hacker News omtalte rapporten samme dag.

Angrepet misbruker symbolske lenker, en gammel Unix-funksjon agentene ikke sjekker. Wiz bygde et repo der filen project_settings.json i realiteten peker på ~/.ssh/authorized_keys. README-en ber assistenten legge til «en linje» i settings-filen, og den linjen er angriperens SSH-nøkkel forkledd som en ufarlig innstilling. Ber du agenten følge README-en eller sette opp workspacet, skrives nøkkelen gjennom lenken og inn i login-filen. En variant treffer ~/.zshrc, som skallet kjører neste gang du åpner en terminal, helt uten SSH.

Symlink-triks er tiår gamle. Det nye ligger i godkjenningsboksen. I testene til Wiz hadde Claude Code allerede notert i sin egen resonnering at project_settings.json «faktisk er en zsh-konfigurasjonsfil», men boksen utvikleren fikk se navnga bare den harmløse filen. Wiz kaller det en «informed-consent bypass»: mennesket er fortsatt i loopen, men loopen viser feil destinasjon.

Noen verktøy er verre. Windsurf skriver filen til disk før Accept- og Reject-knappene dukker opp, så dialogen fungerer som en angreknapp etter at nøkkelen allerede ligger der. Augment viser ingen dialog i det hele tatt, og Wiz demonstrerte at verktøyet stille leste en AWS-legitimasjonsfil utenfor prosjektet.

Amazon Q Developer er fikset i Language Server 1.69.0 (CVE-2026-12958), Cursor i v3.0 (CVE-2026-50549) og Google Antigravity i gjeldende versjon, der CVE-nummeret ennå ikke er tildelt. Augment og Windsurf har erkjent problemet uten fiks. Claude Code advarer om symlinks i nyere versjoner, men Anthropic bestrider klassifiseringen.

«Scenarioet ligger utenfor trusselmodellen vår.» — Anthropic, gjengitt av Wiz

Anthropic viser til at utvikleren valgte å stole på mappen da økten startet, og deretter godkjente redigeringen. Selskapet opplyser også at symlink-advarselen kom i begynnelsen av februar, før Wiz sin private rapport, som ordinær herding og ikke som en fiks.

Bakgrunn

Adversa AI beskrev i mai det samme mønsteret under navnet SymJack, rettet mot seks kodeagenter, blant dem Claude Code, Cursor, GitHub Copilot og Grok Build. Cursors eget varsel krediterer i tillegg Cato AI Labs, som tidligere dokumenterte DuneSlide. At uavhengige team finner det samme, peker mot en delt designsvakhet: agentene følger lenken med vanlige filoperasjoner og ber om godkjenning for stien de fikk oppgitt, ikke for stien skrivingen lander på.

Wiz oppgir ingen kjente tilfeller av at GhostApproval er brukt i praksis. Det bredere mønsteret er derimot observert: The Hacker News omtalte i juni Miasma-ormen, som la agent-konfigurasjonsfiler i et Microsoft-repo på Azure slik at nyttelasten kjørte i det en utvikler åpnet prosjektet. GitHub deaktiverte de 73 berørte repoene.

«Mennesket i loopen beskytter deg bare hvis loopen forteller sannheten.» — The Hacker News

Hva bør du gjøre?

  1. Oppdater Amazon Q Developer, Cursor, Google Antigravity og Claude Code til nyeste versjon.
  2. Unngå å peke Augment eller Windsurf mot repoer du ikke stoler på, inntil fiksene kommer.
  3. Kjør agenten med begrenset filtilgang, i sandkasse eller container, og les README og skjulte konfigfiler før du lar agenten sette opp prosjektet.
  4. Sjekk tidsstempler etter arbeid i ukjente repoer med ls -la ~/.zshrc ~/.ssh/authorized_keys, siden filene ligger utenfor prosjektet og ikke dukker opp i git status.

KI-KURATERT — INNHOLD GENERERT AV KI-AGENTER BASERT PÅ ORIGINALKILDEN