Kritische Schwachstelle in Microsoft-GitHub-Repository

Sicherheit (Pexels, allgemeine Nutzung)Sicherheitsforscher von Tenable Research haben eine kritische Schwachstelle (CVSSv4 Score 9,3) in einem Microsoft-GitHub-Repository entdeckt. Die Sicherheitslücke ermöglicht Remote Code Execution (RCE) sowie unautorisierten Zugriff auf Repository-Secrets. Die Entdeckung unterstreicht, dass CI/CD-Infrastrukturen ein zentraler Bestandteil moderner Angriffsflächen sind.

Die Schwachstelle betrifft einen verwundbaren GitHub-Workflow im Repository "Windows-driver-samples". Mit rund 5.000 Forks und 7.700 Stars stellt dieses Repository einen wichtigen Anlaufpunkt für Entwickler dar. Konkret geht es bei der Schwachstelle um Automatisierungsskripte auf Basis von GitHub Actions. Die Tenable-Forscher zeigten, wie Angreifer dessen CI/CD-Infrastruktur gezielt ausnutzen können, um die Software-Lieferkette zu kompromittieren.

Ein „trivialer" Angriffspfad

Die Ursache liegt in einer einfachen Python-String-Injection-Schwachstelle. Ein mögliches Angriffsszenario:

  • Erstellen eines Issues: Ein Angreifer eröffnet ein GitHub-Issue – eine Funktion, die jedem registrierten Nutzer offensteht.
  • Einschleusen von Schadcode: In der Issue-Beschreibung wird bösartiger Python-Code platziert.
  • Automatische Ausführung: Der GitHub-Workflow wird beim Erstellen des Issues automatisch ausgelöst und führt den Schadcode im Kontext des GitHub-Runners aus.
  • Auslesen von Secrets: Der Angreifer kann den GITHUB_TOKEN sowie weitere im Repository konfigurierte Secrets auslesen.

Auswirkungen auf die Repository-Integrität

Der ausgelesene GITHUB_TOKEN ermöglicht Aktionen im jeweiligen GitHub-Repository. Da das Repository vor 2023 erstellt wurde und der Token ohne explizite Einschränkung zumindest das Erstellen von Issues erlaubt, gehen die Researcher davon aus, dass weiterhin standardmäßige Lese- und Schreibrechte bestehen. Dies könnte es Unbefugten ermöglichen, privilegierte Aktionen im Namen von Microsoft auszuführen, etwa Issues anzulegen oder Inhalte im Repository zu verändern.

"Die CI/CD-Infrastruktur ist Teil der Angriffsfläche und der Software-Lieferkette eines Unternehmens", erklärt Rémy Marot, Staff Research Engineer bei Tenable. „Ohne geeignete Schutzmaßnahmen können Schwachstellen in Pipelines ausgenutzt werden, um groß angelegte Supply-Chain-Angriffe zu starten – mit potenziell gravierenden Folgen für nachgelagerte Systeme und Nutzer."

Im Zuge der Offenlegung betont Tenable, dass Unternehmen ihre CI/CD-Pipelines als kritische Infrastruktur behandeln sollten, und empfiehlt zur Vermeidung vergleichbarer Risiken folgende Maßnahmen:

  • Strenge Sicherheitskontrollen: Robuste Schutzmechanismen zum Schutz von Quellcode und Build-Integrität in automatisierten Workflows implementieren.
  • Überprüfung von Berechtigungen: GITHUB_TOKEN-Berechtigungen explizit anpassen und auf das notwendige Minimum beschränken.
  • Monitoring der Pipelines: Automatisierte Workflows regelmäßig auf mögliche Injection-Schwachstellen prüfen, insbesondere wenn sie durch externe Nutzereingaben ausgelöst werden.

Tenable hat die Details zur kritischen Schwachstelle im Blog-Beitrag Microsoft GitHub Repository Windows-driver-samples Workflow Remote Code Execution veröffentlicht.

Dieser Beitrag wurde unter Sicherheit, Software abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen für den Permalink.

3 Kommentare zu Kritische Schwachstelle in Microsoft-GitHub-Repository

  1. viebrix sagt:

    Ich glaube ich verstehe das nicht ganz…
    Wieso wird ein Code in einem Issue ausgeführt?
    Ok wenn da KI im Spiel wäre und im Issue geschrieben wird, ich habe da ein Blocking Problem und – auch eine Lösung die super toll ist und unmittelbar eingebaut werden soll, weil so supertoll – dann kann ich mir noch vorstellen, dass der Code irgendwo von einer KI integriert wird oder getestet wird.
    Aber einfach so, weil ein Code in einem Fehlermeldungsreport steht – wird dieser automatisch angeworfen? Eventuell um das Problem automatisch nachvollziehen zu können? Nur um den Besitzer des Codes zu Taggen? Nein ich verstehe es immer noch nicht.. warum macht man so etwas? Es gibt doch auf Github eine automatisierte Meldung an den Codebesitzer, wenn etwas neues hereinkommt… Da brauche ich doch nicht zusätzliche Actions auf einen Issue legen?

    • Anonym sagt:

      Der Runner im Github wurde von den Repositoryverantwortlichen falsch konfiguriert.
      Grundsätzlich automatisch Dinge mit Bugreports zu tun, passiert häufig.
      Hier wurde aber der Inhalt des Bugreports ohne Eingabevalidierung direkt an Python weiter gereicht, was zur Ausführung des Codes geführt hat.

      • viebrix sagt:

        Verstehe danke! – was macht man automatisiert mit Bugreports z.B.?
        (Ich verwendete Github nur privat um an dem einen oder anderen Open Source Code Issues zu melden oder ggf kleine Code Verbesserungen vorzuschlagen.) D.h. ich habe mich da nie wirklich vertieft…

Antworte auf den Kommentar von Anonym Antwort abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Bitte beachtet die Regeln zum Kommentieren im Blog (Erstkommentare und Verlinktes landet in der Moderation, gebe ich alle paar Stunden frei, SEO-Posts/SPAM lösche ich rigoros. Kommentare abseits des Themas bitte unter Diskussion. Kommentare, die gegen die Regeln verstoßen, werden rigoros gelöscht.

Du findest den Blog gut, hast aber Werbung geblockt? Du kannst diesen Blog auch durch eine Spende unterstützen.