Dritter und vierter Fall einer Umgehungs-Schwachstelle in Azure-Entra-ID-Anmeldeprotokollen offengelegt
(trustedsec.com)- Seit 2023 wurden insgesamt vier Schwachstellen zur Umgehung von Azure-Entra-ID-Anmeldeprotokollen entdeckt; die beiden jüngsten erwiesen sich als schwerwiegende Probleme, bei denen reguläre Token ausgestellt werden konnten
- GraphGoblin umgeht im OAuth2-ROPC-Flow die Protokollerstellung, indem der Parameter
scopewiederholt eingegeben wird, und Graph**** lässt durch einen User-Agent-String mit mehr als 50.000 Zeichen Protokolle vollständig ausfallen - Bei beiden Schwachstellen wurde ein Logging-Fehler durch Überschreitung der SQL-Spaltenlänge als Ursache genannt; Microsoft hat die Probleme nach der Meldung behoben
- Microsoft stufte das Problem als „Mittel (Medium)“ ein und behebte es stillschweigend ohne Prämie oder offizielle Anerkennung; nach CVSS wird es als High (7,5–8,7 Punkte) bewertet
- Da sich Fehler durch wiederholtes Versagen bei der Eingabevalidierung fortsetzen, werden Cross-Checks von Logs und eine Verschärfung KQL-basierter Erkennungsregeln für Sicherheitsverantwortliche als zwingende Aufgabe genannt
Offenlegung von Schwachstellen zur Umgehung von Azure-Entra-ID-Anmeldeprotokollen
- Seit 2023 wurden insgesamt vier Schwachstellen zur Umgehung von Azure-Entra-ID-Anmeldeprotokollen entdeckt
- Bei den ersten beiden war nur eine Prüfung der Passwortgültigkeit möglich, die beiden jüngsten erreichten jedoch ein schwerwiegenderes Niveau, bei dem sogar reguläre Token ausgestellt werden konnten
- Alle Schwachstellen wurden inzwischen von Microsoft behoben
-
Zusammenfassung von GraphNinja und GraphGhost
- GraphNinja: Wird beim Anmeldeversuch ein Endpunkt eines anderen Tenants angegeben, lässt sich erkennen, ob ein Passwort gültig ist, ohne dass ein Log erzeugt wird
- Angreifer können Authentifizierungsanfragen an einen externen Tenant senden und anhand der Antwort prüfen, ob das Passwort korrekt ist
- Microsoft führte später zusätzliches Logging ein, um dieses Problem zu beheben
- GraphGhost: Bei Verwendung einer ungültigen Client ID schlägt der Authentifizierungsfluss erst nach der Passwortprüfung fehl, im Log erscheint dies jedoch nur als Fehlschlag
- Die Information, dass das Passwort korrekt war, bleibt in den Administrator-Logs unsichtbar
- Microsoft behob das Problem, indem in die Anmeldeprotokolle aufgenommen wurde, ob eine Passwortprüfung stattgefunden hat
- GraphNinja: Wird beim Anmeldeversuch ein Endpunkt eines anderen Tenants angegeben, lässt sich erkennen, ob ein Passwort gültig ist, ohne dass ein Log erzeugt wird
-
Schwachstelle GraphGoblin
- GraphGoblin umgeht im OAuth2-ROPC-Flow die Protokollerstellung, indem der Parameter
scopewiederholt eingegeben wird- Wird eine Zeichenfolge der Form
"openid openid openid ..."tausendfach wiederholt eingegeben, wird ein reguläres Token ausgestellt, aber in den Entra-ID-Anmeldeprotokollen bleibt keinerlei Eintrag zurück
- Wird eine Zeichenfolge der Form
- Als Ursache wird ein INSERT-Fehler durch Überschreitung der SQL-Spaltenlänge genannt
- Vermutet wird, dass das Speichern des Logs fehlschlug, weil die wiederholte Scope-Zeichenfolge die Feldlänge der Datenbank überschritt
- Microsoft hatte zunächst Schwierigkeiten, das Problem nachzustellen, behob es jedoch nach Vorlage eines Video-Belegs
- GraphGoblin umgeht im OAuth2-ROPC-Flow die Protokollerstellung, indem der Parameter
-
Graph****** (User-Agent-basierte Umgehung)
- Wird im Feld User-Agent eine lange Zeichenfolge mit mehr als 50.000 Zeichen eingegeben, wird kein Log erzeugt
- Die Authentifizierungsanfrage wird regulär verarbeitet und ein Token ausgestellt, das Log fehlt jedoch vollständig
- Vermutet wird ein Logging-Fehler durch Überschreitung der SQL-Spaltenlänge
- Entdeckt am 28.09.2025; am 08.10. hatte Microsoft das Problem bereits vor der Meldung behoben
- Wird im Feld User-Agent eine lange Zeichenfolge mit mehr als 50.000 Zeichen eingegeben, wird kein Log erzeugt
-
Zusammenfassung der Timeline
- 2025-09-20: GraphGoblin erstmals entdeckt
- 2025-09-26: GraphGoblin an Microsoft gemeldet
- 2025-09-28: Graph****** entdeckt
- 2025-10-08: Graph****** vollständig behoben
- 2025-11-21: Microsoft konnte GraphGoblin reproduzieren und begann mit der Behebung
Reaktion und Bewertung von Microsoft
- Microsoft stufte diese Schwachstellen als „Mittel (Medium)“ ein und gewährte weder eine Prämie noch eine öffentliche Anerkennung
- Für die beiden früheren Fälle (2023–2024) gab es Prämien und Anerkennung
- Diesmal wurde das Problem trotz der Schwere, dass reguläre Token ausgestellt werden konnten, als nicht wichtig eingestuft
- Die Bewertung liegt bei 7,5 Punkten (High) nach CVSS v3.1 und 8,7 Punkten (High) nach v4.0
- Die hohe Punktzahl ergibt sich durch Beeinträchtigung der Integrity (Integrität)
- Fehlende Logs gelten als direkte Beeinträchtigung einer Sicherheitskomponente
- Microsoft behob das Problem innerhalb von zwei Wochen nach erfolgreicher Reproduktion
- Die frühere Behebung von GraphNinja dauerte 7 Monate, bei GraphGhost 5 Monate
Methoden zur Erkennung der Log-Umgehung
- Über eine KQL-Abfrage lassen sich die Session ID oder der UniqueTokenIdentifier aus Graph-Activity-Logs und Sign-In-Logs vergleichen
- Sitzungen, die in Graph Activity vorhanden sind, aber nicht in den Sign-In-Logs, können als umgangene Anmeldungen gewertet werden
- Das Sammeln von Graph-Activity-Logs ist allerdings nur mit einer E5-Lizenz möglich
- Beispiel für eine KQL-Abfrage:
MicrosoftGraphActivityLogs | where TimeGenerated > ago(8d) | join kind=leftanti (union isfuzzy=true SigninLogs, AADNonInteractiveUserSignInLogs, AADServicePrincipalSignInLogs, AADManagedIdentitySignInLogs, MicrosoftServicePrincipalSignInLogs | where TimeGenerated > ago(90d) | summarize arg_max(TimeGenerated, *) by UniqueTokenIdentifier ) on $left.SignInActivityId == $right.UniqueTokenIdentifier- Bei Bedarf ist auch ein Vergleich auf Basis von
SessionIdmöglich - Auf Grundlage der Erkennungsergebnisse kann eine Azure Log Search Alert Rule eingerichtet werden
- Bei Bedarf ist auch ein Vergleich auf Basis von
Zusammenfassung der vier Umgehungen der Anmeldeprotokolle
| Zeitpunkt der Entdeckung | Methode | Token-Ausstellung möglich | Von Microsoft anerkannt |
|---|---|---|---|
| 2023-08 / 2024-05 | Keine Protokollierung der Passwortprüfung durch Angabe einer externen Tenant-ID | X | X |
| 2024-12 / 2025-04 | Erzwingen eines Authentifizierungsfehlers mit ungültiger Client ID | X | X |
| 2025-09-20 | SQL-Spaltenüberlauf durch wiederholte Scope-Eingabe | O | X |
| 2025-09-28 | SQL-Spaltenüberlauf durch langen User-Agent-String | O | N/A |
Kritik an Microsofts Sicherheitsprozessen
-
Schwachstellen in zahlreichen Parametern der Entra-ID-Anmeldelogging-Funktion gefunden
- Wiederholte Schwachstellen in zentralen Feldern wie
tenant ID,client ID,scope,user-agent - Die Ursache ist ein einfacher Fehler bei der Eingabevalidierung, kein komplexer Angriff
- Kritisiert werden fehlende Sicherheitsprüfung und Qualitätskontrolle bei Microsoft
- Über Jahre hinweg wiederholen sich ähnliche Fehler im selben Bereich
- Es wird die Möglichkeit aufgeworfen, dass bei der Einführung von KI-Codegenerierung oder im Code-Management-Prozess Lücken entstanden sind
- Wiederholte Schwachstellen in zentralen Feldern wie
-
Mangel an Transparenz bei der Offenlegung
- Für keinen der vier Fälle wurde eine CVE vergeben, es gab keine offizielle Mitteilung
- Microsoft entscheidet als CNA exklusiv darüber, ob eigene Schwachstellen offengelegt werden
Fazit
- Die Anmeldeprotokolle von Azure Entra ID sind Kerndaten für die Angriffserkennung in Organisationen weltweit
- Fehlen Logs, kann die gesamte Angriffserkennung unwirksam werden
- Alle vier entdeckten Schwachstellen waren auf einem Niveau, das sich durch einfaches Input-Fuzzing erkennen ließ
- Microsoft muss für diese wiederkehrenden Mängel öffentliche Erklärungen liefern und transparente Sicherheitsprüfungen ausbauen
- Administratoren und Sicherheitsverantwortliche sollten ihre Abwehr durch Cross-Checks von Logs und KQL-basierte Erkennungsregeln ergänzen
1 Kommentare
Hacker-News-Kommentare
Das erinnert an den Bericht zum Microsoft-Vorfall von CISA
Dabei drangen staatlich unterstützte Hacker bei Microsoft ein und kompromittierten mehrere Behörden, darunter das US-Außenministerium
Bemerkenswert war, dass nicht Microsoft, sondern ein Systemadministrator im Außenministerium Unregelmäßigkeiten in den Mail-Logs entdeckte und so den Einbruch aufdeckte
Link zum CISA-Bericht
Die Probleme aus Windows-Zeiten wurden einfach in die Cloud übertragen, und es gab bereits zweimal Vorfälle mit gescheiterter Isolation zwischen Tenants
Zugehörige Artikel: Azure’s Security Vulnerabilities Are Out of Control / Microsoft comes under blistering criticism for “grossly irresponsible” security
In einem Artikel von ProPublica und ArsTechnica, der Azure frontal kritisierte, hieß es, föderale Cyberexperten hätten die Microsoft-Cloud als „miserabel“ bezeichnet
Artikellink
Der aktuelle Zustand der Cybersicherheit ist für ein System, von dem die gesamte Zivilisation abhängt, viel zu wacklig
Es ist, als würde man ein leckes Boot mit Panzerband abdichten und damit auf den Ozean hinausfahren
In der Diskussion über SQL-Logs sieht es so aus, als habe der Angreifer eine zu lange Eingabe gesendet, sodass das
INSERTwegen Überschreitung der Spaltenlänge fehlschlugDadurch wurde der Anmeldeversuch offenbar nicht protokolliert
Das wirkt wie ein strukturelles Problem durch zu komplexes Design im Authentifizierungsfluss
Ich habe erlebt, dass die Audit-Logs von Azure etwas anderes aufzeichneten als das, was tatsächlich passiert ist
Ich löschte ein Client Secret, und während die UI anzeigte, dass B gelöscht würde, ließ die API am Ende nur A übrig
Im Log sah es dann so aus, als hätte ich das getan, obwohl es in Wirklichkeit ein Systemfehler war
Seit diesem Erlebnis ist mein Vertrauen in Azure-Logs wie auch in Audit-Logs allgemein erschüttert
Ich halte sie für riskant als Beweismittel vor Gericht
Verglichen mit den jüngsten EntraID-Schwachstellen wirkt Log-Umgehung weniger wichtig
Microsoft hat sogar schon in Notepad kritische Schwachstellen eingebaut, daher überrascht mich so etwas nicht
Als ich vor einiger Zeit Azure VPN evaluiert habe, wurden erfolgreiche oder fehlgeschlagene Verbindungen überhaupt nicht protokolliert
Als ich das ansprach, sagte Microsoft, ich solle das als Feature Request einreichen
Damals habe ich mein Vertrauen in Azure vollständig verloren. Mit der Zeit scheint es nicht besser, sondern eher schlimmer zu werden
Dass IT-Administratoren Microsoft weiter nutzen, liegt daran, dass es keine echten Alternativen gibt
Das Budget ist knapp und das Personal fehlt, also halte ich es einfach auf einem Niveau, bei dem ich mein Gehalt bekomme und abends nach Hause gehen kann
Beeindruckend war, dass Microsoft, als es die Azure-Schwachstelle nicht reproduzieren konnte und Videobeweise verlangte, sie mit einer einzigen Zeile
curl-Befehl demonstriert bekamenDas war wirklich ein herrlich befriedigender Moment