Angriff auf Online-Kompilierungssysteme durch Manipulation von Header-Dateien

Hanno Böck, Autor des Projekts fuzzing-project.org, aufgepasst über die Verwundbarkeit interaktiver Kompilierungsschnittstellen, die die Verarbeitung von externem Code in der Sprache C ermöglichen. Bei der Angabe eines beliebigen Pfads in der „#include“-Direktive kommt es zu einem Kompilierungsfehler, der den Inhalt einer Datei einschließt, die nicht kompiliert werden konnte.

Durch das Ersetzen von „#include “ in den Code in einem der Onlinedienste konnte die Ausgabe beispielsweise einen Hash des Passworts des Root-Benutzers aus der Datei /etc/shadow erhalten, was ebenfalls darauf hinweist Der Webdienst läuft mit Root-Rechten und führt die Kompilierungsbefehle als Root aus (möglicherweise wurde während der Kompilierung ein isolierter Container verwendet, aber auch die Ausführung als Root in einem Container stellt ein Problem dar). Der problematische Dienst, bei dem das Problem reproduziert werden konnte, ist noch nicht ausgeschrieben. Versuche, Dateien im Pseudo-FS /proc zu öffnen, waren erfolglos, da GCC sie als leere Dateien behandelt, aber das Öffnen von Dateien aus /sys funktioniert.

Source: opennet.ru

Kommentar hinzufügen