Six Eight Consulting Logo
Security News

Gemini CLI CVSS 10: GitHub-RCE durch TrustIssues und Prompt Injection

Veröffentlicht:
12 Minuten Lesezeit
Gemini CLI CVSS-10-Schwachstelle: GitHub Issue, AI-Agent, CI/CD-Runner und Repository als Supply-Chain-Angriffspfad

Stand: 06. Mai 2026 - zuletzt aktualisiert

Autor: Mika Schmidt (IT-Security Experte) – Six Eight Consulting, Fokus: Analyse, IAM, Security Engineering.

Gemini CLI und die GitHub Action run-gemini-cli hatten eine der heikelsten Schwachstellen, die wir bisher bei AI-Coding-Agenten gesehen haben: In bestimmten CI/CD-Setups konnte ein externer Angreifer aus untrusted Inhalt heraus Remote Code Execution auf dem Runner erreichen. Google behandelt den Fall unter GHSA-wpqr-6v78-jr5g; die Advisory bewertet das Risiko mit CVSS 10.0 Critical. [Advisory] [News]

Wichtig für die Einordnung: Das ist kein klassischer "das Modell hat halluziniert"-Vorfall. Die Schwachstelle lag im Trust-Modell rund um agentische Automatisierung: Welche Dateien darf ein Agent laden? Welche Tools darf er ausführen? Welche Tokens liegen im Runner? Und darf ein öffentliches GitHub Issue faktisch einen Agenten mit Shell-Zugriff fernsteuern? Genau diese Kombination machte den Fall zum Supply-Chain-Risiko. [Research] [Analysis]

Keine Entwarnung durch fehlende CVE

Nach aktuellem Stand vom 6. Mai 2026 ist in der GitHub Advisory kein CVE-Identifier eingetragen. Für die Priorisierung ist das zweitrangig: Der offizielle GitHub-Eintrag nennt CVSS 10.0, Netzwerk-Angriffsvektor, keine benötigten Privilegien und keine User Interaction.

Was ist passiert?

Hackread fasst den jüngsten Forschungsstand so zusammen: Pillar Security zeigte, dass ein Angreifer über ein öffentliches GitHub Issue eine Gemini-gestützte Triage-Automation beeinflussen konnte. Das Issue war untrusted Input, wurde aber vom Agenten gelesen und verarbeitet. In der betroffenen Konfiguration lief Gemini CLI im --yolo-Modus, also mit automatischer Freigabe von Tool-Aufrufen. [News] [Research]

Pillar nennt diese Angriffsklasse TrustIssues. Der Pfad war nicht nur "Prompt Injection führt zu einem falschen Label", sondern konnte in der PoC-Kette bis zur Übernahme des google-gemini/gemini-cli-Repositorys eskalieren. Der Grund: Der Agent konnte sensible Runner-Daten lesen, der Workflow hatte nutzbare GitHub-Berechtigungen, und Credentials waren trotz gut gemeinter Environment-Isolation noch über den Workspace erreichbar. [Research]

Parallel beschreibt Novee Security die zweite zentrale Ursache: In älteren Versionen vertraute Gemini CLI in Headless-/CI-Umgebungen Workspace-Ordnern automatisch. Dadurch konnten lokale Konfigurationen, etwa in .gemini/ oder .env, geladen werden, bevor ein Mensch das Projekt als vertrauenswürdig bestätigt. Bei untrusted Pull Requests ist genau das ein RCE-Designfehler. [Research] [Advisory]

Betroffene Versionen und Patches

Die offiziellen Fixes sind seit dem 24. April 2026 verfügbar. Laut Advisory sind folgende Versionen relevant: [Advisory] [Release]

  • Betroffen: @google/gemini-cli vor 0.39.1.
  • Betroffen: @google/gemini-cli in der 0.40-Preview vor 0.40.0-preview.3.
  • Betroffen: google-github-actions/run-gemini-cli vor 0.1.22.
  • Gepatcht: @google/gemini-cli 0.39.1, @google/gemini-cli 0.40.0-preview.3 und run-gemini-cli 0.1.22.

Besonders leicht zu übersehen sind gepinnte Versionen. Die GitHub Action kann zwar standardmäßig die aktuelle Gemini-CLI-Version beziehen, aber Workflows mit explizitem gemini_cli_version bleiben auf der gewählten Version stehen. Genau solche Pins sollten jetzt aktiv gesucht und bewertet werden. [Advisory] [Docs]

Die TrustIssues-Angriffskette

Die Pillar-Kette ist deshalb lehrreich, weil sie zeigt, wie ein scheinbar harmloser Automations-Use-Case kippt. Ein Repository will Issues automatisch labeln. Ein externer Nutzer öffnet ein Issue. Der AI-Agent liest den Text, darf Shell- oder GitHub-CLI-Werkzeuge nutzen und schreibt anschließend ein Label oder eine Antwort. Das klingt nach Produktivität; sicherheitlich ist es aber ein Agent mit Zugriff auf untrusted Text, Runner-Dateisystem und Kommunikationskanäle. [Research]

In der konkreten Analyse war ein wichtiger Punkt, dass der GITHUB_TOKEN nicht an den Gemini-Schritt übergeben wurde. Diese Maßnahme war sinnvoll, aber unvollständig. actions/checkout speichert Credentials standardmäßig im Git-Remote des ausgecheckten Repositorys, sofern persist-credentials nicht deaktiviert ist. Ein Agent mit Dateizugriff konnte dadurch trotzdem an nutzbare Tokens kommen. [Research]

Danach wurde es zum Berechtigungsproblem: Ein Token mit actions: write kann andere Workflows starten. Wenn ein nachgelagerter Workflow großzügigere Rechte wie contents: write besitzt und vom Angreifer kontrollierte Refs verarbeitet, entsteht aus einem Issue-Triage-Agenten eine realistische Supply-Chain-Kette. Genau das ist der Punkt: Nicht der erste Token ist entscheidend, sondern der Weg zu einem mächtigeren Token. [Research]

Workspace Trust im Headless-Modus

Der zweite Teil der Advisory betrifft die Frage, ob ein Projektordner als vertrauenswürdig gilt. Interaktive Developer-Tools können Nutzer fragen: "Vertraust du diesem Workspace?" In Headless-Umgebungen gibt es keinen Klick. Ältere Gemini-CLI-Versionen lösten das zu bequem und vertrauten CI-Workspaces automatisch für Konfigurations- und Environment-Ladevorgänge. [Advisory] [Research]

Die gepatchte Logik zieht Headless-Verhalten näher an das interaktive Sicherheitsmodell heran: Ohne explizite Vertrauensentscheidung werden Workspace Settings, lokale .env-Dateien und riskante Automatisierungsfunktionen eingeschränkt. Die Trusted-Folders-Dokumentation beschreibt diesen Safe Mode als Schutz vor gefährlichen lokalen Projektkonfigurationen. [Docs]

Warum --yolo besonders gefährlich war

--yolo ist für Automatisierung verlockend, weil der Agent nicht bei jedem Tool-Aufruf auf menschliche Zustimmung wartet. In der verwundbaren Variante ignorierte dieser Modus jedoch feingranulare Tool-Allowlisten. Ein Workflow konnte also scheinbar nur run_shell_command(echo) erlauben, während --yolo praktisch beliebige Shell-Kommandos freigab. [Research] [Advisory]

Der Patch erzwingt Tool-Allowlisting nun auch unter --yolo. Das ist wichtig, aber keine Einladung, untrusted Inhalte mit breiten Shell-Rechten zu verarbeiten. Eine Allowlist ist nur so gut wie ihre Einträge: Wer cat, curl, bash oder zu breite Shell-Patterns erlaubt, schafft weiterhin Exfiltrations- und Ausführungspfade. [Research]

Sofortmaßnahmen für Teams

Wer Gemini CLI oder run-gemini-cli in GitHub Actions nutzt, sollte nicht nur updaten, sondern das gesamte Agenten-Setup als privilegierten Codepfad behandeln. Die folgende Checkliste ist bewusst pragmatisch formuliert:

  • Versionen aktualisieren: mindestens @google/gemini-cli 0.39.1 oder 0.40.0-preview.3 und run-gemini-cli 0.1.22.
  • Pins prüfen: alle Workflows mit gemini_cli_version gegen die Patch-Stände abgleichen.
  • Untrusted Inputs trennen: Issues, PRs, Kommentare und Forks nicht mit denselben Rechten verarbeiten wie interne Events.
  • Kein blindes --yolo: für öffentliche oder externe Inhalte keine automatische Tool-Freigabe ohne harte Grenzen.
  • Checkout härten: bei untrusted Runs persist-credentials: false setzen.
  • Token minimieren: permissions pro Workflow explizit und eng setzen; actions: write und contents: write nur dort, wo sie wirklich nötig sind.
  • Workspace Trust bewusst setzen: GEMINI_TRUST_WORKSPACE: "true" nur für vertrauenswürdige Inhalte verwenden.
  • Secrets isolieren: keine produktiven Tokens in Jobs, die von externem Text oder fremden Branches beeinflusst werden können.
# Schnellcheck im Repository: Wo tauchen Gemini CLI und riskante Modi auf?
rg "run-gemini-cli|@google/gemini-cli|gemini_cli_version|--yolo|GEMINI_TRUST_WORKSPACE" .github package.json package-lock.json pnpm-lock.yaml yarn.lock
# Beispiel für untrusted Workflows: Credentials nicht in .git/config persistieren
- uses: actions/checkout@v4
  with:
    persist-credentials: false

# Beispiel für bewusstes Workspace-Trusting nur bei vertrauenswürdigen Inputs
env:
  GEMINI_TRUST_WORKSPACE: "true"

Welche Umgebungen zuerst prüfen?

Die höchste Priorität haben Workflows, bei denen ein externer Nutzer den Input des Agenten beeinflussen kann. Dazu gehören Issue-Triage, Pull-Request-Reviews, Kommentar-Trigger wie @gemini-cli, Verarbeitung von Forks und alle Jobs, die Repository-Inhalte aus fremden Branches analysieren. Je mehr Secrets, OIDC-Rechte und GitHub-Token-Rechte im selben Job verfügbar sind, desto höher ist die Dringlichkeit. [Advisory] [Docs]

Niedriger, aber nicht irrelevant, sind rein interne Workflows mit Gemini CLI. Auch dort sollten Tool-Allowlists, Workspace Trust und Token-Rechte sauber dokumentiert sein. Interne Angreifer, kompromittierte Developer Accounts oder kompromittierte Dependencies können dieselben Designfehler ausnutzen, nur mit einem anderen Startpunkt.

Incident Response: Was nachträglich prüfen?

Wenn vor dem Patch Gemini-Workflows mit öffentlichen Issues, Pull Requests oder Kommentaren liefen, lohnt sich ein rückblickender Blick in die GitHub-Actions-Historie. Suchen Sie nach ungewöhnlichen Workflow-Dispatches, verdächtigen Ausgaben, unerwarteten Token- oder OIDC-Nutzungen, Repository-Schreibzugriffen und nach Runs, die länger offen gehalten wurden als normal. Bei Verdacht sollten erreichbare Secrets rotiert werden.

Wichtig ist dabei, nicht nur den Gemini-Workflow isoliert zu betrachten. Pillars Analyse zeigt gerade den Pivot über andere Workflows. Prüfen Sie also auch Jobs, die vom betroffenen Token aus gestartet werden konnten und höhere Rechte hatten. In GitHub Actions ist der zweite Workflow oft der eigentliche Schadenverstärker. [Research]

Kurzantwort für Entscheider

Die Gemini-CLI-Schwachstelle GHSA-wpqr-6v78-jr5g ist ein CVSS-10-Risiko für Unternehmen, die AI-Agenten in CI/CD einsetzen. Die technische Ursache liegt in Workspace Trust, Tool-Allowlisting und überprivilegierten GitHub-Actions-Workflows. Gepatchte Versionen sind verfügbar; das größere Thema bleibt aber die Governance von AI-Agenten, die untrusted Input lesen und gleichzeitig Tools, Secrets oder Schreibrechte besitzen.

Für Security-Teams ist das ein guter Anlass, AI-Coding-Agenten nicht mehr als "nur Chatbot im Build-Log" zu behandeln. Sobald ein Agent Shell, Repository, Cloud- oder GitHub-CLI-Zugriff hat, gehört er in Threat Models, Least-Privilege-Prüfungen, Secret-Reviews und Incident-Response-Playbooks.

FAQ

Welche Gemini-CLI-Versionen sind betroffen?

Laut GitHub Security Advisory sind @google/gemini-cli vor 0.39.1, die 0.40-Preview vor 0.40.0-preview.3 und google-github-actions/run-gemini-cli vor 0.1.22 betroffen.

Gibt es für die Gemini-CLI-Schwachstelle eine CVE?

Nach dem Stand vom 6. Mai 2026 ist in der GitHub Advisory GHSA-wpqr-6v78-jr5g kein CVE-Identifier eingetragen. Die Severity ist dennoch Critical mit CVSS 10.0.

Ist die Gemini-CLI-RCE nur ein Prompt-Injection-Problem?

Nein. Die Advisory umfasst zwei Risikoklassen: Workspace Trust im Headless-Modus und Tool-Allowlisting unter --yolo. Pillar beschreibt eine Prompt-Injection-Kette über GitHub Issues; Novee beschreibt zusätzlich eine Infrastruktur-RCE über untrusted Workspace-Konfiguration.

Sind lokale Gemini-CLI-Nutzer betroffen?

Das kritischste Szenario betrifft Headless- und CI/CD-Workflows. Lokale Nutzung bleibt riskant, wenn unbekannte Repositories oder Projektkonfigurationen vertraut werden und die CLI Shell- oder Netzwerkzugriff erhält. Die neue Trusted-Folders-Logik soll genau dieses Risiko sichtbarer machen.

Was ist die wichtigste Sofortmaßnahme?

Gepatchte Versionen einsetzen, gepinnte gemini_cli_version-Werte prüfen und Workflows auf untrusted Inputs absichern: kein --yolo für fremde Inhalte, minimale Token-Rechte, persist-credentials: false und GEMINI_TRUST_WORKSPACE nur für vertrauenswürdige Workspaces.

Quellen & weiterführende Links

Stand: 6.5.2026

Dieser Artikel wird bei neuen Entwicklungen aktualisiert.

Sie möchten diese Schritte auf Ihr Unternehmen übertragen?

In einem kurzen Gespräch klären wir, welche Maßnahmen für Sie konkret sinnvoll sind – ohne Over-Engineering. Weitere Artikel finden Sie im Blog-Archiv.