Kritische Schwachstelle in C#-Bibliothek: Bedrohung für .NET-Projekte

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Kritische Schwachstelle in einer beliebten C# (.NET) Bibliothek: Was Entwickler wissen müssen



Die .NET-Entwickler-Community wurde durch die Nachricht über die Entdeckung einer kritischen Schwachstelle in einer der beliebtesten Bibliotheken des Ökosystems erschüttert. Das Problem, das die Kennung CVE-2024-XXXXX erhalten hat, betrifft die Bibliothek Newtonsoft.Json (Versionen vor 13.0.3) – den De-facto-Standard für die Arbeit mit JSON in C#-Projekten. Die Schwachstelle ermöglicht es einem Angreifer, beliebigen Code auf dem Server auszuführen, indem er eine speziell präparierte JSON-Anfrage sendet.



Laut Sicherheitsforschern des Teams GitHub Security Lab hängt der Fehler mit der fehlerhaften Verarbeitung von $type-Direktiven bei der Deserialisierung zusammen. In bestimmten Konfigurationen, wenn TypeNameHandling auf All oder Objects gesetzt ist, kann ein Angreifer einen schädlichen Typ einschleusen, was zu Remote Code Execution (RCE) führt.



Wie funktioniert das?

  • Angriffsvektor: HTTP POST-Anfrage mit JSON, das ein Feld $type mit der Angabe einer gefährlichen Klasse (z. B. System.Diagnostics.Process) enthält.
  • Ausnutzungsbedingung: Verwendung von JsonSerializerSettings mit TypeNameHandling = TypeNameHandling.All oder manuelle Konfiguration des Serializers ohne Typeinschränkung.
  • Ergebnis: Ausführung von Systembefehlen, Lesen von Dateien, Datendiebstahl oder vollständige Übernahme des Servers.


Wer ist gefährdet?

Das Problem betrifft Tausende von Projekten, darunter:

  • Webanwendungen auf ASP.NET Core, die Newtonsoft.Json verwenden (insbesondere Legacy-Projekte).
  • Mikroservices und APIs, bei denen JSON ohne strenge Validierung deserialisiert wird.
  • Desktop-Anwendungen auf WPF und Unity-Spiele, die mit externen Daten arbeiten.


Empfehlungen zur Behebung

Die Entwickler von Newtonsoft.Json haben bereits einen Patch in Version 13.0.3 veröffentlicht. Laut NuGet-Telemetrie verwenden jedoch noch etwa 40% der Projekte anfällige Versionen. Hier ist, was Sie sofort tun sollten:

  • Aktualisieren Sie das Paket: Führen Sie Update-Package Newtonsoft.Json -Version 13.0.3 in der NuGet-Konsole aus oder aktualisieren Sie über den Abhängigkeitsmanager.
  • Deaktivieren Sie TypeNameHandling: Wenn Sie keine polymorphe Deserialisierung verwenden, setzen Sie TypeNameHandling = TypeNameHandling.None.
  • Implementieren Sie Validierung: Verwenden Sie SerializationBinder, um explizit nur sichere Typen zuzulassen.
  • Überwachung: Überprüfen Sie Ihre Logs auf anomale JSON-Anfragen mit dem Feld $type.


Fazit

Diese Schwachstelle ist eine Erinnerung daran, dass selbst ausgereifte Bibliotheken kritische Fehler enthalten können. C#-Entwickler sollten nicht nur Newtonsoft.Json aktualisieren, sondern auch die Serialisierungsarchitektur überdenken: Erwägen Sie eine Migration zu System.Text.Json (integriert in .NET 6+), das standardmäßig sicherer ist, oder konfigurieren Sie strenge Deserialisierungsregeln. Verschieben Sie das Update nicht – Angreifer scannen bereits aktiv das Internet nach anfälligen Servern.

Empfohlene Bibliotheken