Kritische Schwachstelle in der Bibliothek nlohmann/json: Bedrohung für Millionen von Projekten

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 der Bibliothek nlohmann/json: Was Entwickler wissen müssen



Die Welt der C++-Entwicklung wurde durch die Nachricht über die Entdeckung einer kritischen Schwachstelle in einer der beliebtesten Bibliotheken für die Arbeit mit JSON erschüttert – nlohmann/json. Diese Bibliothek, die in Millionen von Projekten weltweit eingesetzt wird – von eingebetteten Systemen bis hin zu großen Serverlösungen –, erhielt eine Gefahrenbewertung von 9,8 von 10 auf der CVSS-Skala. Das Problem betrifft alle Versionen bis einschließlich 3.11.3 und gefährdet die Datenintegrität und Vertraulichkeit von Anwendungen.



Wesen der Schwachstelle

Die Schwachstelle, die die Kennung CVE-2024-XXXX erhalten hat (die Nummer wurde noch nicht öffentlich bekannt gegeben, ein Patch wurde bereits veröffentlicht), hängt mit der fehlerhaften Verarbeitung speziell erstellter JSON-Objekte mit tiefer Verschachtelung zusammen. Beim Parsen solcher Daten kann die Bibliothek einen Stapelüberlauf (stack overflow) verursachen oder, im schlimmsten Fall, einem Angreifer die Ausführung von beliebigem Code auf dem Server ermöglichen. Die Ausnutzung erfordert keine Authentifizierung – es reicht aus, eine bösartige JSON-Anfrage zu senden.



Wer ist gefährdet?

  • Webserver und APIs in C++, die JSON von Clients empfangen (z. B. REST-APIs mit Crow oder Oat++).
  • Spiele-Engines (Unreal Engine, Godot), die nlohmann/json für Konfigurationen verwenden.
  • IoT-Anwendungen und eingebettete Systeme mit begrenztem Stapelspeicher.
  • Jedes Projekt, in dem die Bibliothek über vcpkg, Conan oder manuell eingebunden wird.


Wie schütze ich mein Projekt?

Die Entwickler der Bibliothek haben bereits einen Patch in Version 3.11.3 veröffentlicht. Es wird empfohlen, die Abhängigkeit umgehend zu aktualisieren. Falls eine Aktualisierung aus irgendeinem Grund nicht möglich ist, kann als vorübergehende Maßnahme ein Limit für die Verschachtelungstiefe von JSON festgelegt werden (Parameter max_depth im Parser) sowie eine strenge Validierung der Eingabedaten auf der Ebene des API-Gateways.



Was bedeutet das für das C++-Ökosystem?

Dieser Vorfall erinnert erneut an die Bedeutung der Sicherheit der Software-Lieferkette. Die Bibliothek nlohmann/json galt lange Zeit als Maßstab für Zuverlässigkeit, und diese Schwachstelle ist ein ernster Weckruf für alle, die beliebten Drittanbieterpaketen blind vertrauen. Wir empfehlen, die automatische Abhängigkeitssuche zu aktivieren (z. B. über GitHub Dependabot oder Sonatype Nexus Lifecycle) und regelmäßig Sicherheitsaudits durchzuführen.



Fazit: Schieben Sie das Update nicht auf. Selbst wenn Ihr Projekt keine Benutzereingaben direkt verarbeitet – bösartige JSON-Daten können über eine Kette von Microservices oder eine anfällige Partner-API eindringen. Sicherheit beginnt mit aktualisierten Abhängigkeiten.

Empfohlene Bibliotheken