
Die Sicherheitsfunktion open_basedir, weißt eine Lücke auf, mit der es möglich ist aus dem vorgegeben Verzeichnis auszubrechen.
Der bekannte Sicherheitsberater Stefan Esser warnt, wie Golem berichtet, vor einer kritischen Lücke in der Sicherheitsfunktion open_basedir.
Unter Zuhilfenahme der symlink()-Funktion ist es möglich die Beschränkung der open_basedir Direktive zu umgehen. Eine Beschreibung des Security-Advisory befindet sich hier.
Die open_basedir Funktion beschränkt den Zugriff auf ein gewähltes Verzeichnis (oder Verzeichnisse). Die Funktionen arbeitet praktisch als "Sandbox" aus der ein PHP-Script nicht auf andere Dateien, außerhalb des Verzeichnisses zugreifen kann.
Da das Problem mit der Art und Weise, wie PHP mit der Einbindung externer Funktionen umgeht, zusammenhängt - lässt sich die Sicherheitslücke nur durch ein Workaround schließen.
Schliessen der Sicherheitslücke
Um die kritische Sicherheitslücke in der PHP-Funktion open_basedir zu schliessen, muss man die symlink()-Funktion deaktivieren.
Dies geschieht durch Angabe des Funktionsnames symlink in der php.ini. Dort gibt es eine Zeile, die mit disable_functions anfängt.
In der Zeile disable_functions werden die Funktionen aufgelistet, die deaktiviert sind. Hier sollte das Wort "symlink" angehängt werden um die Funktion zu deaktivieren. In diesem Artikel wird beschrieben, welche Funktionen noch aufgelistet werden sollten.
Hinweis
Nicht vergessen, wenn es sich um eine php.ini in einer Web-Umgebung handelt, muss noch der Webserver neu gestartet werden um die Änderungen zu übernehmen.