Cybersecurity-Forscher haben eine kürzlich gepatchte, hochgefährliche Sicherheitslücke in der beliebten Fastjson-Bibliothek aufgedeckt, die möglicherweise ausgenutzt werden kann, um Remote-Codeausführung zu erreichen.

Die Schwachstelle mit der Bezeichnung CVE-2022-25845 (CVSS-Score: 8.1) bezieht sich auf die Deserialisierung nicht vertrauenswürdiger Daten in einer unterstützten Funktion namens „AutoType“. Das Problem wurde von den Projektbetreuern in der Version 1.2.83 behoben, die am 23. Mai 2022 veröffentlicht wurde.

„Diese Schwachstelle betrifft alle Java-Anwendungen, die auf die Fastjson-Versionen 1.2.80 oder früher angewiesen sind und die benutzergesteuerte Daten an die JSON.parse- oder JSON.parseObject-APIs übergeben, ohne eine bestimmte Klasse für die Deserialisierung anzugeben“, so Uriya Yavnieli von JFrog in einem Bericht.

Fastjson ist eine Java-Bibliothek, mit der Java-Objekte in ihre JSON-Darstellung umgewandelt werden können und andersherum. AutoType, die Funktion, die für die Schwachstelle anfällig ist, ist standardmäßig aktiviert und dient dazu, beim Parsen einer JSON-Eingabe einen benutzerdefinierten Typ anzugeben, der dann in ein Objekt der entsprechenden Klasse deserialisiert werden kann.

„Wenn das deserialisierte JSON jedoch benutzergesteuert ist, kann das Parsen mit aktiviertem AutoType zu einem Sicherheitsproblem bei der Deserialisierung führen, da der Angreifer eine beliebige Klasse instanziieren kann, die auf dem Klassenpfad verfügbar ist, und ihren Konstruktor mit beliebigen Argumenten füttern kann“, erklärt Yavnieli.

Während die Projektverantwortlichen bereits einen safeMode eingeführt haben, der AutoType deaktiviert, und eine Blockliste von Klassen pflegen, um sich gegen Deserialisierungsfehler zu schützen, umgeht die neu entdeckte Schwachstelle die letztgenannte Einschränkung und führt zu einer Remotecodeausführung.

Nutzern von Fastjson wird empfohlen, auf Version 1.2.83 zu aktualisieren oder den safeMode zu aktivieren, der die Funktion unabhängig von der verwendeten allowlist und blocklist ausschaltet und damit Varianten des Deserialisierungsangriffs effektiv schließt.

„Obwohl es einen öffentlichen PoC-Exploit gibt und die potenzielle Auswirkung sehr hoch ist (Remote-Code-Ausführung), sind die Bedingungen für den Angriff nicht trivial (Übergabe von nicht vertrauenswürdigen Eingaben an bestimmte verwundbare APIs) und – was am wichtigsten ist – es sind zielgerichtete Untersuchungen erforderlich, um eine geeignete Gadget-Klasse für den Angriff zu finden“, so Yavnieli.