Kritische Lücke in Content Management System Mambo

PHP entwickelt sich immer mehr zum Sicherheits-Müllhaufen:

Nicht immer erhöht unter PHP das Deaktivieren von register_globals die Sicherheit. Manchmal öffnet sich dadurch erst eine Schwachstelle. So auch im Falle des Content Management System Mambo, das laut eines Postings auf der Sicherheits-Mailing-Liste Full Disclosure eine Schwachstelle enthält, mit der es Angreifern möglich ist, eigenen Code auf dem Server auszuführen.

Dazu trägt sicherlich bei, das es kaum eine Sprache - ausser vielleicht noch Perl - so viel Cruft mit sich rum, wie PHP. Das Ergebnis zeigt sich dann immer wieder in esoterischen Problemen, die dann selbst Leute erwischen, die eigentlich von der Erfahrung her auf sowas vorbereitet sein müssten.

tags: PHP, Programmierung

Elias Nov. 18, 2005, 3:06 a.m.

Ich setze für ein kleines (zum Glück nicht so wichtiges) Projekt Mambo ein und war beim ersten Lesen der Meldung einfach nur erschrocken. Und dann habe ich einen Blick in die Sourcen getan.

Das ist kein PHP-Problem, sondern eine ganz komische Programmierung. Wenn "register_globals=off" gesetzt ist, was viele aus Sicherheitsgründen tun, dann emuliert ein recht komischer PHP-Code die Einstellung "register_globals=on" - und macht dabei so seine kleinen Fehler. Da ich aber auf dem Server unvorsichtigerweise "register_globals=on" als Standard gesetzt habe (wegen einiger sehr alter Anwendungen, die vorerst auch nicht angefasst werden), durfte ich das erste Mal seit vielen Monaten mit dieser Einstellung bei einer solchen Meldung beruhigt sein...

hugo Nov. 18, 2005, 9:23 a.m.

Irgendwie ist es schon erschreckend, was wegen der diversen Warzen in PHP die Leute sich so einfallen lassen in der Programmierung ...

Man sollte meinen, das aktuelle PHP-Software ohne Klimmzüge und seltsame Hacks mit Dingen wie register_globals=off klar kommt und ohne Probleme mit dem Safe-Mode läuft. Aber immer wieder rennt man da gegen Wände oder gerät in seltsame Fallen. Mit ein Grund warum mein langfristiges Ziel für meinen Server ist, alle PHP-Software wieder los zu werden. Ich hab leider immer noch viel zu viel in PHP geschriebenes Zeugs hier laufen ...

Elias Nov. 18, 2005, 9:27 p.m.

Ach ja, das mit dem "in PHP geschriebenen Zeugs", das kenne ich zu gut. Es war damals so einfach zu schreiben oder zu kriegen, und dann kamen die Problemchen und irgendwann wurde ich täglicher Leser der Security-Meldungen...

Aber auch in Perl lassen sich böse Bugs erzeugen - was habe ich nicht schon alles für Mistcode lesen müssen. Weil aber im Moment viel mehr PHP-Code verfügbar ist, glauben viele zu leicht, dass PHP das Problem ist.

hugo Nov. 18, 2005, 9:33 p.m.

Die Programmiersprache _ist_ ein Teil des Problems. Ich weiss, ich kenn den Spruch das schlechte Programmierer in jeder Programmiersprache Fortran schreiben können - aber manche Sprachen verleiten auch gute Programmierer dazu Mist zu produzieren. Und da steht PHP ganz vorne (und ja, Perl steht da auch).

Es ist immer ein allzu leichter Ausweg sich darauf zurückzuziehen, man könne ja in jeder Sprache schlechtes Zeug machen. Die Frage ist, zu was verleitete die Sprache? Und bei PHP ist das ziemlich offensichtlich. Die gute PHP Software kannst du mit der Lupe suche (ja, es gibt sie trotzdem).