Hoch

Microsoft.OpenApi.YamlReader anfällig für Denial of Service über YAML-Alias-Expansion

  • Veröffentlicht: 14.10.2026
  • Aktualisiert: 15.10.2026 08:00

Auswirkungen

Ein kleines YAML-OpenAPI-Dokument mit verschachtelten Ankern und Aliasen kann einen unkontrollierten Ressourcenverbrauch in Microsoft.OpenApi.YamlReader und Microsoft.OpenApi.Readers verursachen. Das Problem betrifft das Parsen von OpenAPI-Dokumenten über die öffentlichen YAML-Reader-APIs und kann dazu führen, dass der Parsing-Prozess übermäßig viel Speicher allokiert und aufgrund von Out-of-Memory-Bedingungen beendet wird.

Betroffene Versionen

Microsoft.OpenApi.YamlReader

  • >= 2.0.0-preview.11, < 2.12.0
  • >= 3.0.0, < 3.10.0

Microsoft.OpenApi.Readers

  • < 1.6.30

Patches

  • Für die Hauptversion 1.X sind die Versionen 1.6.30 und höher gepatcht.
  • Für die Hauptversion 2.X sind die Versionen 2.12.0 und höher gepatcht.
  • Für die Hauptversion 3.X sind die Versionen 3.10.0 und höher gepatcht.

Tragweite

Anwendungen, CLIs, Entwicklertools oder Dienste, die nicht vertrauenswürdige YAML-OpenAPI-Dokumente innerhalb des Prozesses parsen, können durch ein speziell gestaltetes YAML-Dokument mit verschachtelten Ankern und Aliasen beendet werden.

Die Auswirkung beschränkt sich ausschließlich auf die Verfügbarkeit bzw. den Prozessabbruch. Es liegen keine Hinweise auf Remote-Codeausführung, Authentifizierungsumgehung, Offenlegung von Zugangsdaten, Rechteausweitung, Datenexposition oder Auswirkungen auf von Microsoft gehostete Dienste vor.

Details

Microsoft.OpenApi.YamlReader und Microsoft.OpenApi.Readers verarbeiten YAML über SharpYaml. SharpYaml stellt Aliase als geteilte YamlNode-Instanzen in einem gerichteten azyklischen Graphen dar, sodass der anfänglich geparste YAML-Graph klein bleibt. Bei der Konvertierung in System.Text.Json.Nodes.JsonNode müssen Aliase als unabhängige Knoten materialisiert werden, da JsonNode-Instanzen nicht mehreren übergeordneten Elementen zugewiesen werden können.

Ohne eine Begrenzung dieser Konvertierungsarbeit kann ein kleines YAML-Dokument mit verschachtelten Ankern und Aliasen während der Konvertierung exponentiell anwachsen. Bei N verschachtelten Ankern, die jeweils k-mal referenziert werden, kann die Konvertierung k^N materialisierte JSON-Knoten erfordern, was zu übermäßiger Speicherbelegung und möglichem Prozessabbruch führt.

Dies ist eine Schwachstelle durch unkontrollierten Ressourcenverbrauch, auch bekannt als Denial-of-Service im Stil von „Billion Laughs“.

Beispielhafter Payload

yaml
openapi: 3.0.0
info:
  title: Test
  version: 0.0.1
paths: {}
x-a: &a ["lol", "lol", "lol", "lol", "lol", "lol", "lol", "lol", "lol"]
x-b: &b [*a, *a, *a, *a, *a, *a, *a, *a, *a]
x-c: &c [*b, *b, *b, *b, *b, *b, *b, *b, *b]
x-d: &d [*c, *c, *c, *c, *c, *c, *c, *c, *c]
x-e: &e [*d, *d, *d, *d, *d, *d, *d, *d, *d]
x-f: &f [*e, *e, *e, *e, *e, *e, *e, *e, *e]

Was zu tun ist

Benutzer sollten je nach verwendeter Hauptversionslinie auf Microsoft.OpenApi.YamlReader 2.12.0 oder 3.10.0 bzw. Microsoft.OpenApi.Readers 1.6.30 aktualisieren.

Die gepatchten Versionen begrenzen den YAML-zu-JSON-Konvertierungsaufwand und brechen frühzeitig ab, anstatt eine unbegrenzte Expansion zuzulassen. Die Standardgrenzwerte sind:

  • Maximale Anzahl materialisierter Knoten: 5,000,000
  • Maximale Schachtelungstiefe: 64

Wenn die Grenzwerte überschritten werden, meldet OpenApiYamlReader.Read einen OpenApiDiagnostic-Fehler und gibt kein geparstes Dokument zurück.

Die Grenzwerte werden als prozessweite statische Eigenschaften auf YamlConverter für Anwender bereitgestellt, die diese für vertrauenswürdige Arbeitslasten anpassen müssen:

  • YamlConverter.MaxNodeCount
  • YamlConverter.MaxDepth

Anwendungen, die OpenAPI-Dokumente aus nicht vertrauenswürdigen Quellen verarbeiten, sollten das Parsen dieser Dokumente nach Möglichkeit nicht im primären Anwendungsprozess durchführen. Die Ausführung des Parsings in einem isolierten Prozess kann den Schadensradius von Parserfehlern verringern.

Betroffene Software

Klicken Sie auf eine Technologie, um alle zugehörigen Schwachstellen anzuzeigen.

PlattformPaketAnfällige VersionenBehoben in
.NET (NuGet) Microsoft.OpenApi.Readers < 1.6.30 1.6.30
.NET (NuGet) Microsoft.OpenApi.YamlReader >= 3.0.0, < 3.10.0, >= 2.0.0-preview.11, < 2.12.0 3.10.0, 2.12.0

Verweise

CVSS-Wert 7.5/10
CVSS-Vektor
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
Schwäche (CWE)
CWE-400, CWE-770
Plattform
.NET (NuGet)
Paket
Microsoft.OpenApi.Readers, Microsoft.OpenApi.YamlReader
Veröffentlicht
14.10.2026
Aktualisiert
15.10.2026 08:00

Quellen und Lizenzen · Von DockRay bearbeitet oder übersetzt; Rechte und Lizenzen der Quellen bleiben erhalten.

OSV / GitHub Advisory Database - GHSA-7pxr-59rr-hqj2 - CC BY 4.0

Schwachstellenhistorie: Microsoft.OpenApi.Readers

Alle veröffentlichten Schwachstellen dieses Pakets (.NET (NuGet)), neueste zuerst. Zeigt, ob es ein einmaliger Ausrutscher ist oder ein Paket, das man im Auge behalten muss.

Dies ist die einzige bekannte Schwachstelle dieses Pakets.

Erkennen Sie Schwachstellen in Ihrer Anwendung

Mit der DockRay-Integration und aktivierter Softwareinventarisierung prüft DockRay gemeldete Komponentenversionen auf bekannte Schwachstellen und benachrichtigt Sie über bestätigte Treffer. Die Abdeckung hängt von der unterstützten Technologie und den verfügbaren Meldungen ab.

Anwendung verbinden
DockRay Newsletter

Anwendungssicherheit in Ihrem Postfach

Wichtige Schwachstellen, konkrete Empfehlungen und praktische Tipps für Ihre Anwendungen. Wählen Sie Ihre Technologien und verfolgen Sie, was für Ihr Projekt relevant ist.

  • Eine tägliche Zusammenfassung neuer Schwachstellen, auch kritischer.
  • Benachrichtigungen über wichtige Updates.
  • Praktische Tipps zur Sicherheit und Überwachung von Anwendungen.

Leer lassen, um Meldungen zu allen Technologien zu erhalten.

Kostenlos anmelden. In jeder E-Mail mit einem Klick abmelden.