Erstellung eines vollständigen RCE-Exploits aus einem Absturz bei der Analyse von Autodesk Revit RFA-Dateien
Der Autor untersuchte einen Absturz in Autodesk Revit 2025, der zunächst durch Fuzzing von RFA-Dateien gefunden wurde und zu einer Typverwechslungsanfälligkeit führte. Diese Anfälligkeit war das Ergebnis der Deserialisierung eines std::pair-Typs. Der Absturz tritt auf, wenn das Programm versucht, einen Destruktor für einen Wert ohne V-Tabelle aufzurufen. Der Autor nutzte die Anfälligkeit aus, um eine Remote-Code-Ausführung zu erreichen. Die Forschung umfasste Reverse Engineering und Debugging. Werkzeuge wie IDA Pro, WinDBG und Time Travel Debugging wurden verwendet. Eine Cloud-basierte Lieferkettenanfälligkeit im Axis Communications Plugin für Autodesk Revit, die korrumpierte RFA-Dateien verteilen konnte, unterstützte den Exploit erheblich. Der Autor erstellte ein Werkzeug, "CompoundFileTool", und ein weiteres Werkzeug, das das gzip-Verhalten von Revit nachahmte, was für die effektive Modifizierung von RFA-Dateien unerlässlich war. Ziel war es, den Offset 0x0 des deserialisierten Objekts so zu manipulieren, dass er auf eine kontrollierte V-Tabelle zeigt. Der Autor erreichte letztendlich erfolgreich eine beliebige Codeausführung durch Ausnutzung der Typverwechslung. Die Forschung umfasste auch das Reverse Engineering und das Verständnis des RFA-Formats von Autodesk, einschließlich des Formats der komprimierten Daten im Global/Latest-Stream.
std::pair-Typs. Der Absturz tritt auf, wenn das Programm versucht, einen Destruktor für einen Wert ohne V-Tabelle aufzurufen. Der Autor nutzte die Anfälligkeit aus, um eine Remote-Code-Ausführung zu erreichen. Die Forschung umfasste Reverse Engineering und Debugging. Werkzeuge wie IDA Pro, WinDBG und Time Travel Debugging wurden verwendet. Eine Cloud-basierte Lieferkettenanfälligkeit im Axis Communications Plugin für Autodesk Revit, die korrumpierte RFA-Dateien verteilen konnte, unterstützte den Exploit erheblich. Der Autor erstellte ein Werkzeug, "CompoundFileTool", und ein weiteres Werkzeug, das das gzip-Verhalten von Revit nachahmte, was für die effektive Modifizierung von RFA-Dateien unerlässlich war. Ziel war es, den Offset 0x0 des deserialisierten Objekts so zu manipulieren, dass er auf eine kontrollierte V-Tabelle zeigt. Der Autor erreichte letztendlich erfolgreich eine beliebige Codeausführung durch Ausnutzung der Typverwechslung. Die Forschung umfasste auch das Reverse Engineering und das Verständnis des RFA-Formats von Autodesk, einschließlich des Formats der komprimierten Daten im Global/Latest-Stream.