Vorfälle & Fälle - Red-Team-Befund

GitLab Duo - Remote Prompt Injection und Quellcode-Exfiltration

Red-Team-Befund von Legit Security: Vom Angreifer kontrollierte Projektinhalte konnten die Antworten von GitLab Duo Chat für andere Personen lenken und zusammen mit einem Problem bei der HTML-Ausgabe einen demonstrierten Pfad zur Exfiltration privaten Quellcodes eröffnen. Laut der Offenlegung der Forschenden hat GitLab die veröffentlichte Kette behoben.

Von Norbert HofmannVeröffentlicht: 2026-09-26Zuletzt geprüft: 2026-09-26
Record-Typ
Red-Team-Befund
Offenlegung
2025-05-22
Produkt
GitLab Duo Chat
Freie Wildbahn
Keine Ausnutzung in freier Wildbahn in den zitierten Quellen berichtet
Inhaltsverzeichnis

Zusammenfassung

Legit Security berichtete, dass GitLab Duo Chat, der in GitLab integrierte AI-Assistent, beim Beantworten von Fragen Projektinhalte wie Merge-Request-Beschreibungen, Kommentare und Quellcode liest. Von einem Angreifer dort platzierte Inhalte konnten Duos Antworten an andere Personen beeinflussen. Die Forschenden demonstrierten einen Pfad, über den privater Code im Zugriff der betroffenen Person abfließen konnte.

Dieser Eintrag ist ein Red-Team-Befund aus Responsible Disclosure. Er behauptet nicht, dass Angreifer dies gegen GitLab-Kunden eingesetzt haben.

Einordnung und Evidenzstatus

Stabile Metadaten dieses Eintrags
FeldWert
Record-TypRed-Team-Befund
Öffentliche Offenlegung2025-05-22
Hersteller / ProduktGitLab / GitLab Duo Chat
AngriffsklasseIndirekte Prompt Injection
EintragswegRepository-Inhalte - vom Angreifer kontrollierte Merge-Request-Texte, Kommentare oder Quellcode, die Duo liest
Betroffene Daten / FähigkeitenPrivater Quellcode und Projekt-Issues, auf die die betroffene Person über Duo zugreifen konnte
Demonstrierte WirkungManipulierte Duo-Antworten und ein demonstrierter Pfad zur Exfiltration privaten Quellcodes im Zugriff der betroffenen Person
Ausnutzung in freier WildbahnKeine Ausnutzung in freier Wildbahn in den zitierten Quellen berichtet. Die Offenlegung beschreibt nur Forschungsergebnisse.
BehebungsstatusBehoben (laut Offenlegung der Forschenden). GitLab hat die Prompt Injection und das HTML-Ausgabeproblem bestätigt; laut den Forschenden war die beschriebene Kette zur Veröffentlichung nicht mehr möglich.
KennungenKeine Kennung angegeben
Externe BewertungKeine externe Bewertung angezeigt

Betroffenes System und Vertrauenspfad

Duo arbeitet mit den Rechten der fragenden Person. Fragt sie nach einem Merge Request, liest der Assistent Inhalte, die jeder mit Beitragsrechten geschrieben haben kann. Diese Inhalte sind variable Daten Dritter, während die privaten Projekte der Person über dieselbe Sitzung erreichbar sind.

Die Forschenden wiesen darauf hin, dass Duo auch Projekt-Issues sehen konnte, die interne Diskussionen und vertrauliche Sicherheitsmeldungen enthalten können. Das erweitert, was eine beeinflusste Antwort berühren kann.

Angriffskette im Überblick

Im Überblick: Ein Angreifer platziert anweisungsähnliche Inhalte in Projektmaterial wie einem Merge Request. Später fragt eine betroffene Person Duo zu diesem Material. Duos Antwort folgt den Inhalten des Angreifers, etwa durch veränderte Codevorschläge oder Links. In der demonstrierten Variante enthielt die Antwort Markup, das die Oberfläche so darstellte, dass privater Code an ein externes Ziel übertragen werden konnte.

Die Quelle beschreibt Methoden, die Inhalte vor menschlichen Prüfenden zu verbergen. Dieser Eintrag gibt weder diese Methoden noch das Markup oder die Exfiltrationsmechanik wieder.

Demonstrierte Wirkung und beobachtete Ausnutzung

Demonstriert: Manipulation von Duo-Vorschlägen für andere Personen und ein kontrollierter Pfad zur Exfiltration privaten Quellcodes und von Issue-Inhalten im Zugriff der betroffenen Person.

Gegen reale Kunden beobachtet: in der zitierten Quelle nichts berichtet. Die Manipulation einer Antwort ist Modelleinfluss; die Datenoffenlegung hing von der Darstellung der Modellausgabe und den Zugriffsrechten der betroffenen Person ab.

Begünstigende Kontrolllücken

  • Von anderen Beitragenden verfasste Inhalte gelangten ohne Provenienzunterscheidung, die ihre Wirkung begrenzt hätte, in den Kontext des Assistenten.
  • Modellausgaben wurden in der Oberfläche als aktives Markup dargestellt, sodass die Ausgabeverarbeitung zum Exfiltrationskanal wurde.
  • Die Reichweite des Assistenten entsprach dem vollen Zugriff der betroffenen Person, sodass beeinflusste Ausgaben auch private Projekte ohne Bezug zur Anfrage betreffen konnten.

Reaktion von Hersteller und Forschenden

Laut Legit Security wurden die Befunde an GitLab gemeldet. GitLab bestätigte die Prompt Injection und das HTML-Ausgabeproblem und veröffentlichte eine Korrektur. Die Forschenden geben an, dass die beschriebene Angriffskette zum Zeitpunkt der Veröffentlichung nicht mehr möglich war. Dieser Status stammt aus der Offenlegung der Forschenden.

Nachweise, die Verteidiger sichern sollten

  • Welche Projektelemente (Merge Requests, Kommentare, Dateien, Issues) der Assistent für jede Antwort gelesen hat, mit Autoren und Revisionen.
  • Die rohe Assistentenausgabe vor dem Rendern neben der tatsächlich angezeigten Darstellung.
  • Ausgehende Anfragen von Browsern oder Proxys, die beim Anzeigen von Assistentenausgaben ausgelöst wurden.
  • Änderungen an Merge Requests oder Kommentaren kurz bevor andere Personen den Assistenten nutzten.

Lehren für die Abwehr

  • Ausgabevalidierung und Senkenbehandlung: die Struktur von Assistentenausgaben prüfen und sie sicher für die Oberfläche darstellen; das sind getrennte Schritte.
  • Informationsflusskontrolle: verhindern, dass Assistentenausgaben Anfragen auslösen, die Repository-Daten zu externen Zielen tragen.
  • Least Privilege: das Lesbare des Assistenten auf das Projekt begrenzen, um das es in der Frage geht.
  • Agentenautorisierung: jede vorgeschlagene Aktion oder jeden Abruf als eigene Entscheidung unter den tatsächlichen Rechten der Person behandeln.
  • AI Agents und Tool Calling - Wie Modellvorschläge zu Aktionen werden: der Tool-Calling-Kreislauf, Verfügbarkeit und Berechtigung, Autorisierung zur Laufzeit, Freigabe, Tool-Ergebnisse als variable Daten und Audit.
  • Warum Prompt Injection nicht nur Eingabevalidierung ist - Warum klassische Eingabevalidierung für strukturierte Grenzen nötig bleibt, aber über Quellvertrauen, Anweisungsautorität, Autorisierung und Informationsfluss bei natürlicher Sprache nicht entscheiden kann.

Quellen

  1. Remote Prompt Injection in GitLab Duo Leads to Source Code TheftLegit Security · Researcher disclosure · 2025-05-22Geprüft 2026-09-26