Roger Wilco
Active Member
Disclaimer: Es handelt sich um einen Crosspost von RootForum.de • FYI: mod_php considered harmful
Die letzten Tage ist mal wieder ein schon etwas älterer Bug von PHP ans Tageslicht gespült worden. Beim Einsatz als Apache-Modul werden vor dem Aufruf des PHP-Interpreters wohl nicht alle Dateideskriptoren aufgeräumt, die der Apache httpd geöffnet hat. Dadurch kann über ein normales PHP-Skript sowie ein unterstützendes Binary der Apache-Prozess ersetzt bzw. verdrängt werden.
Das bösartige Skript kann dadurch an Stelle des Apache httpd Daten an Besucher ausliefern und so bspw. Malware verbreiten, Passwörter abgreifen usw.
Man erhält dadurch zwar keine Rootrechte, aber die Möglichkeit den Webserver abzuschießen und durch einen eigenen Prozess zu ersetzen ist schlimm genug. Betroffen sind scheinbar alle Versionen von PHP.
Um das Problem zu umgehen, bieten sich neben dem offensichtlichen PHP deinstallieren oder Apache httpd durch eine Alternative ersetzen, folgende Möglichkeiten an:
1) PHP über die CGI-Schnittstelle, SuPHP oder FastCGI mit SuExec einbinden.
2) Funktionen wie system, passthru usw. mit disable_functions verbieten.
Verweise:
PHP Bugs: #20302: Leaked Descriptors
PHP Bugs: #38915: Apache: system() (and similar) don't cleanup opened handles of Apache
http://hackerdom.ru/~dimmo/phpexpl.c
'Hijacking Apache https by mod_php' - MARC
Apache mit mod_php übernehmen - Wohnzimmerhostblogger
Die letzten Tage ist mal wieder ein schon etwas älterer Bug von PHP ans Tageslicht gespült worden. Beim Einsatz als Apache-Modul werden vor dem Aufruf des PHP-Interpreters wohl nicht alle Dateideskriptoren aufgeräumt, die der Apache httpd geöffnet hat. Dadurch kann über ein normales PHP-Skript sowie ein unterstützendes Binary der Apache-Prozess ersetzt bzw. verdrängt werden.
Das bösartige Skript kann dadurch an Stelle des Apache httpd Daten an Besucher ausliefern und so bspw. Malware verbreiten, Passwörter abgreifen usw.
Man erhält dadurch zwar keine Rootrechte, aber die Möglichkeit den Webserver abzuschießen und durch einen eigenen Prozess zu ersetzen ist schlimm genug. Betroffen sind scheinbar alle Versionen von PHP.
Um das Problem zu umgehen, bieten sich neben dem offensichtlichen PHP deinstallieren oder Apache httpd durch eine Alternative ersetzen, folgende Möglichkeiten an:
1) PHP über die CGI-Schnittstelle, SuPHP oder FastCGI mit SuExec einbinden.
2) Funktionen wie system, passthru usw. mit disable_functions verbieten.
Verweise:
PHP Bugs: #20302: Leaked Descriptors
PHP Bugs: #38915: Apache: system() (and similar) don't cleanup opened handles of Apache
http://hackerdom.ru/~dimmo/phpexpl.c
'Hijacking Apache https by mod_php' - MARC
Apache mit mod_php übernehmen - Wohnzimmerhostblogger