Ein Sicherheitswerkzeug von GitHub hat bei Snowflake eine Lücke erzeugt, statt eine zu schließen. Copilot Autofix ersetzte am 18. Juni im öffentlichen Repository snowflake-connector-net eine abgesicherte Übergabe per Variable durch eine Zeile, in der ein Anführungszeichen im Titel eines GitHub-Issues zu Shell-Code wird. Fünf Tage später griff ein KI-Agent des Sicherheitsanbieters Wiz darüber auf das interne Jira von Snowflake zu.

drweb.de als bevorzugte Quelle auf Google hinzufügenQualitätsgeprüfte Inhalte direkt in Google News & DiscoverJetzt hinzufügen

Copilot Autofix erscheint bei GitHub als fertiger Korrekturvorschlag neben einer CodeQL-Warnung. Der daraus entstandene Commit bei Snowflake trägt drei Mitautoren: zwei Entwickler und die KI. Aufgefallen ist der Fehler beim Zusammenführen niemandem.

Das Wichtigste in Kürze

  • Copilot Autofix tauschte in zwei Jira-Workflows von Snowflake das von GitHub dokumentierte Muster mit Zwischenvariable gegen eine direkte Textersetzung im Shell-Befehl.
  • Ein präpariertes Issue genügte, um auf dem Build-Server beliebige Befehle auszuführen und drei Jira-Zugangsdaten abzuziehen.
  • Der Prüfagent Red Agent von Wiz fand und nutzte die Lücke am 23. Juni ohne menschliches Zutun, Snowflake korrigierte den Workflow am selben Tag.
  • Ab dem 11. September 2026 verlangt Artikel 14 des Cyber Resilience Act eine Erstmeldung binnen 24 Stunden für jede aktiv ausgenutzte Schwachstelle.

Warum wurde aus einer Korrektur eine Lücke?

Ein rechteckiges Stoffpflaster mit einem ausgefransten Loch und schwarzem Text auf einer Wand mit Riss
Ein Shell-Injection-Vulnerability in GitHub Actions: Der Issue-Titel wird direkt in den Befehl eingefügt statt über Umgebungsvariablen weitergegeben

Zwischen der sicheren und der verwundbaren Fassung liegt eine einzige Zeile. Vorher reichte der Workflow den Titel eines Issues über einen env-Block als Variable an das Skript weiter. Nachher stand der Ausdruck ${{ github.event.issue.title }} mitten im Shell-Befehl, eingerahmt von einfachen Anführungszeichen und nachträglich entschärft durch zwei sed-Aufrufe. GitHub Actions setzt solche Ausdrücke aber als reinen Text in das Skript ein, lange bevor die Shell startet. Ein einziges Anführungszeichen im Titel beendet deshalb die Zeichenkette, alles dahinter wird Befehl.

Die Schutzbedingung des Workflows lief zusätzlich ins Leere, weil sie auf github.event.pull_request.user.login prüfte. Bei einem Issue-Ereignis existiert dieses Feld gar nicht, der Vergleich trifft also immer zu und jedes GitHub-Konto konnte den Ablauf auslösen. Den sicheren Weg beschreibt GitHub in der eigenen Dokumentation seit Jahren: Fremde Eingaben gehören in eine Zwischenvariable, nicht in die Erzeugung des Skripts.[1] Wie kurz die Strecke von einem bekannten Muster zum echten Angriff ist, zeigte vergangene Woche die Lücke CVE-2026-55040 in SharePoint.

Wie schnell fand ein KI-Agent die offene Stelle?

Fünf Tage. Am 23. Juni prüfte Red Agent, ein autonomes Werkzeug des Sicherheitsanbieters Wiz, das öffentliche Repository und legte ein Issue an, dessen Titel den Befehl mitbrachte. Der erste Versuch scheiterte an einem Syntaxfehler der Shell. Der Agent wertete die Fehlermeldung aus und schrieb die Nutzlast um. Beim zweiten Anlauf wanderten Jira-Token, Dienstkonto-Adresse und Server-Adresse base64-kodiert an eine Gegenstelle außerhalb von Snowflake.[2]

Der Token gehörte einem Dienstkonto und öffnete lesend mehrere Jira-Projekte, darunter die Sicherheits-Compliance und das Bug-Bounty-Programm. Snowflake zog ihn am 24. Juni ein und belegte über die Audit-Protokolle, dass in den fünf offenen Tagen kein weiterer Fremder auf die Schnittstelle zugriff. Dieselbe Beschleunigung läuft auf der Verteidigungsseite, seit CrowdStrike seine Schwachstellensuche dem Mittelstand öffnet.

Copilot Autofix hat bei Snowflake einen abgesicherten Workflow gegen eine unsichere Variante getauscht. Die Kosten für neuen Code sind gefallen, die Kosten für das Gegenlesen nicht.

— Michael Dobler, Herausgeber Dr. Web
Fünf Tage offen: die Zeitleiste der Snowflake-Lücke
Vom automatisch erzeugten Commit bis zum gesperrten Zugangstoken, alle Daten aus dem Jahr 2026.

Was wann geschah

18. JUNI
Commit landet
Pull Request 1218 wird zusammengeführt, als Mitautor steht „Copilot Autofix powered by AI“ im Commit
23. JUNI
Agent nutzt die Lücke
Red Agent von Wiz legt ein präpariertes Issue an und zieht die Jira-Zugangsdaten ab
23. JUNI
Snowflake korrigiert
Meldung über HackerOne, Rückbau auf das sichere Muster am selben Tag
24. JUNI
Token gesperrt
Der Jira-Token wird eingezogen, das Audit-Protokoll zeigt keinen weiteren fremden Zugriff

Die Größenordnung

5 Tage
lag der Fehler im öffentlichen Repository, auslösbar über jedes GitHub-Konto
3
abgezogene Geheimnisse: Jira-Token, Dienstkonto-Adresse und Server-Adresse
24 Std.
Frist für die Erstmeldung nach Artikel 14 Cyber Resilience Act, ab 11. September 2026
Die eine Zeile, um die alles geht
Vorher, abgesichert über eine Zwischenvariable
env: ISSUE_TITLE: …
run: TITLE=“$ISSUE_TITLE“
Nachher, Text direkt im Shell-Befehl
run: TITLE=$(echo ‚${{ github.event.issue.title }}‘ | sed …)

Was heißt das für Entwicklerteams im deutschsprachigen Raum?

Der Vorfall steht nicht allein. Im März 2025 kaperten Angreifer die weit verbreitete Action tj-actions/changed-files und ließen sie Zugangsdaten in die Build-Protokolle von über 23.000 Repositorien schreiben, woraufhin die US-Behörde CISA eine eigene Warnung veröffentlichte.[3] Beide Fälle treffen dieselbe Stelle: Der Build-Server verwahrt die Geheimnisse und nimmt zugleich Eingaben von außen entgegen. Neu ist allein die Besetzung, denn hier schuf ein KI-Werkzeug die Lücke und ein zweites fand sie. Wie eng KI-Systeme und Angriffsfläche zusammenrücken, zeigte zuletzt auch der Fall der 85 gekaperten Behördenkonten in Taiwan.

Für Anbieter im deutschsprachigen Raum rückt damit der Cyber Resilience Act in Reichweite. Ab dem 11. September 2026 meldet ein Hersteller jede aktiv ausgenutzte Schwachstelle seines Produkts binnen 24 Stunden an das zuständige CSIRT und an die ENISA.[4] Eine kompromittierte Bau-Kette fällt darunter, sobald der Schaden das ausgelieferte Produkt erreicht. Warum ein Zertifikat allein diese Pflicht nicht abnimmt, zeigt der Streit um das IEC-62443-Zertifikat von Dahua. Paragraf 30 BSIG und Artikel 32 DSGVO binden die Verantwortung ohnehin an den Betreiber.

Zwei Schritte gehören deshalb in die nächste Sprint-Planung. Zuerst ein Prüfwerkzeug wie zizmor oder actionlint als Pflichtlauf jeder Pipeline, das die direkte Textersetzung in run-Blöcken abfängt. Danach eine Freigaberegel, die einen KI-Vorschlag an einer Workflow-Datei genauso streng behandelt wie den Beitrag eines fremden Mitwirkenden. Warum diese Frage in die Geschäftsleitung gehört, ordnet unser Leitfaden zur Cybersecurity als Chefsache ein.

Quellen

[1] GitHub Docs: „Secure use reference“ zu Skript-Injektion in Workflows (abgerufen am 17. August 2026)

[2] Wiz: „Red Agent Exploits Snowflake Vuln Created by Copilot Autofix“ (17. August 2026), Commit 4a1b8ce und Pull Request 1402 im Repository snowflakedb/snowflake-connector-net

[3] CISA: „Supply Chain Compromise of Third-Party tj-actions/changed-files (CVE-2025-30066)“ (18. März 2025)

[4] Amtsblatt der EU: Verordnung (EU) 2024/2847 (Cyber Resilience Act), Artikel 14 und Artikel 71

Mehr Newshunger?

4,2 10 Bewertungen

Wie hat Ihnen dieser Artikel gefallen?