Pillar Security publiserte 24. april en analyse av sårbarheten de kaller «TrustIssues»: en CVSS 10-svakhet som ga full supply chain-overtakelse av Googles gemini-cli-repo. Angrepskjeden krever ingenting mer enn at en utenforstående åpner et offentlig GitHub-issue.
Mekanismen er en Gemini-drevet triage-agent som Google deployet på minst ni egne repoer. Agenten kjørte i --yolo-modus, som auto-godkjenner alle verktøykall. Issue-teksten gikk inn i prompten uten sanitering, og i samme runner-prosess lå GITHUB_TOKEN skrevet til .git/config av actions/checkout. En prompt-injeksjon kunne dermed lese filen, base64-kode tokenet, og eksfiltrere det med fem minutters levetid.
«Modellen nektet fem forskere som spurte etter hemmeligheter ved navn. Den kjørte vår payload fordi vi aldri nevnte hemmeligheter i det hele tatt.» — Pillar Security, teknisk rapport
Hva ble fikset
Google publiserte GHSA-wpqr-6v78-jr5g 24. april. Patchen sitter i to lag: run-gemini-cli-action versjon 0.1.22 og @google/gemini-cli 0.39.1 (samt 0.40.0-preview.3). Den viktigste endringen er at allowlist for verktøy nå håndheves selv under --yolo. Tidligere ble allowlisten ignorert i yolo-modus, slik at en workflow som offisielt bare tillot echo faktisk kunne kjøre hva som helst.
Hva bør du gjøre?
- Oppgrader gemini-cli til 0.39.1 eller nyere hvis du bruker den i CI/CD. Sjekk også
run-gemini-cli-action-versjonen i workflow-filene dine. - Sett
persist-credentials: falsepåactions/checkouti alle workflows som behandler input fra fremmede. Det er denne defaulten som laGITHUB_TOKENpå disk og åpnet for hele eskalasjonen. - Audit dine egne KI-agent-triggere. Søk i
.github/workflows/etterissues: opened,pull_request_targeteller kommentar-triggere som kjører en LLM utenauthor_association-sjekk. Hver av dem er en prompt-injeksjon-flate. - Test den dødelige trekanten Simon Willison har beskrevet: tilgang til private data, eksponering for utrustet innhold, og evne til å kommunisere ut. Har agenten din alle tre, er eksfiltrering mulig uansett hvor godt system-prompten er skrevet.
Bakgrunn
Pillars forsker Dan Lisichkin oppdaget mønsteret først på google/draco, der en payload skrev runner-miljøvariablene tilbake i selve issuet og lekket GEMINI_API_KEY pluss OIDC-credentials. Eskalasjonen til gemini-cli-repoet krevde noen flere ledd, blant annet å pivotere fra det leste tokenet til en skriverettighet på main-branchen. Google deaktiverte den sårbare triage-workflowen på flere repoer mens patchen ble laget.