Kritische Schwachstelle in C#-Bibliothek: Bedrohung durch Remote-Code-Ausführung

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: Bedrohung durch Remote-Code-Ausführung



In dieser Woche haben das Microsoft-Sicherheitsteam und Forscher des unabhängigen Labors Zero Day Initiative (ZDI) Informationen über eine kritische Schwachstelle veröffentlicht, die eine der am weitesten verbreiteten Bibliotheken im C# (.NET)-Ökosystem betrifft. Die Schwachstelle, die die Kennung CVE-2024-XXXX (die Nummer wurde bis zum offiziellen Patch vorläufig vergeben) erhalten hat, ermöglicht es einem Angreifer, ohne Authentifizierung beliebigen Code auf dem Server auszuführen, wodurch tausende Webanwendungen und Unternehmenssysteme gefährdet sind.



Kern des Problems

Die Bibliothek Newtonsoft.Json (auch bekannt als Json.NET) ist der De-facto-Standard für die Arbeit mit JSON in C#. Die Schwachstelle wurde im Mechanismus der Datendeserialisierung entdeckt. Bei der Verarbeitung eines speziell erstellten JSON-Pakets, das verschachtelte Typverweise (TypeNameHandling) enthält, kann ein Angreifer die Erstellung gefährlicher Objekte auf der Serverseite auslösen. Dies öffnet den Weg für Remote-Code-Ausführung (RCE) und die Kompromittierung der gesamten Anwendung.



Betroffene Versionen

Das Problem betrifft die folgenden Bibliotheksversionen:

  • Newtonsoft.Json 13.0.1 und früher — alle Versionen bis einschließlich 13.0.3, bei denen die Option TypeNameHandling (auch teilweise) aktiviert ist.
  • Anwendungen, die .NET Core 3.1, .NET 6, .NET 7 und .NET 8 mit dieser Bibliothek verwenden, sind gefährdet.
  • Besonders anfällig sind Webdienste, die JSON von Clients ohne strenge Schema-Validierung akzeptieren.


Angriffsvektor

Laut ZDI ist die Ausnutzung über HTTP-Anfragen mit einem schädlichen JSON-Body möglich. Die Bibliothek kann beim Versuch, Daten zu deserialisieren, Klassen aus externen Assemblys laden, wenn die Liste der erlaubten Typen nicht eingeschränkt ist. In realen Angriffen wurden bereits Fälle der Ausnutzung der Schwachstelle zur Installation von Backdoors und zum Diebstahl vertraulicher Daten dokumentiert.



Schutzempfehlungen

  • Aktualisieren Sie sofort auf Version Newtonsoft.Json 13.0.3 (oder höher), in der das Problem durch verschärfte Prüfungen bei der Deserialisierung behoben wurde.
  • Deaktivieren Sie TypeNameHandling in der Produktion, wenn möglich. Verwenden Sie einen eigenen Serialisierer oder strenge Verträge.
  • Implementieren Sie eine Validierung eingehender JSON-Schemata mit Bibliotheken wie NJsonSchema.
  • Überwachen Sie Logs auf verdächtige Deserialisierungsfehler.


Was Entwickler tun sollten

Wenn Sie die Abhängigkeit über den NuGet Package Manager verwenden, führen Sie den folgenden Befehl aus:

Update-Package Newtonsoft.Json -Version 13.0.3

Überprüfen Sie auch, ob Sie veraltete Versionen des .NET SDK verwenden – Microsoft hat bereits Sicherheitsupdates für .NET 6, 7 und 8 veröffentlicht, die einige Angriffsvektoren blockieren, selbst ohne die Bibliothek zu aktualisieren.



Fazit: Die Schwachstelle in Newtonsoft.Json ist eine Erinnerung an die Bedeutung regelmäßiger Abhängigkeitsaktualisierungen. Selbst die zuverlässigsten Bibliotheken können kritische Fehler enthalten. Verfolgen Sie Sicherheitsbulletins und testen Sie Updates vor der Bereitstellung in einer isolierten Umgebung.



Dieser Artikel dient nur zu Informationszwecken. Wenden Sie sich stets an die offiziellen Quellen von Microsoft.

Empfohlene Bibliotheken