Hanno Böck, Projektleiter , auf die Verwundbarkeit von Schnittstellen für interaktive Kompilierung, die die Verarbeitung von externem Code in C erlauben. Bei Angabe eines beliebigen Pfades in der Direktive „#include“ führt ein Kompilierungsfehler dazu, dass der Inhalt der Datei eingebunden wird, die nicht kompiliert werden konnte.
Zum Beispiel ließ sich in einem der Online-Dienste durch den Code „#include “ als Ausgabe der Hash des Root-Passworts aus der Datei /etc/shadow erhalten, was auch darauf hindeutet, dass der Webdienst mit Root-Rechten ausgeführt wird und Kompilierungsbefehle unter dem Benutzer Root ausführt (es ist nicht ausgeschlossen, dass bei der Kompilierung ein isolierter Container verwendet wurde, aber das Ausführen mit Root-Rechten im Container stellt ebenfalls ein Problem dar). Der problematische Dienst, bei dem sich das Problem reproduzieren ließ, wird derzeit nicht öffentlich gemacht. Versuche, Dateien im Pseudo-FS /proc zu öffnen, hatten keinen Erfolg, da GCC sie als leere Dateien interpretiert, aber das Öffnen von Dateien aus /sys funktioniert.
Quelle: opennet.ru
