Menü
Security

Querelen um PHP-Suhosin-Patch

Von
vorlesen Drucken Kommentare lesen 229 Beiträge

Die Sicherheitserweiterung Suhosin für PHP führte auf manchen Systemen zu Abstürzen. Ein Patch der Debian-Maintainer beseitigte dieses Problem, öffnete aber ein potenzielles Sicherheitsloch. Jetzt tobt ein Streit darüber, wer da was falsch gemacht hat.

Ein Teil des Suhosin-Pakets ist ein Patch für die PHP-Umgebung. Bei der Version für PHP 5.3 liegt die Konfiguration von Suhosin, die unter anderem entscheidet, ob bestimmte Sicherheitsfunktionen aktiv sind, im Arbeitsspeicher. Damit ein Exploit die Sicherheitsfunktionen nicht einfach abschalten kann, wird dieser Speicherbereich nach dem Start vor Schreibzugriffen geschützt. Konkret wird der Speicherbereich auf eine Seitengrenze festgenagelt und dann die ganze Speicherseite via mprotect() auf read-only gesetzt.

Dummerweise ist das nicht portabel und bereitet auf Systemen mit anderen Seitengrößen als 4096 erhebliche Probleme. Insbesondere auf IA64-Plattformen kam es in der Folge zu Abstürzen, etwa weil PHP versuchte, einen schreibgeschützten Bereich zu beschreiben. Die Debian-Maintainer des Pakets gingen diesen Problemen auf den Grund und bereiteten einen Patch vor, der die Absturzursache beseitigte. Sie informierten auch den Suhosin-Entwickler Stefan Esser via E-Mail, der jedoch, wie er später in seinem Blog einräumte, die Mailbox seines Projekts Hardened PHP nicht mehr regelmäßig kontrollierte. Als nach einiger Zeit keine Antwort kam, veröffentlichten die Debian-Maintainer ihren Patch, um die Abstürze zu beenden.

Einige Zeit später kontrollierte Esser seine Hardened-PHP-Mails und stolperte dabei auch über den mittlerweile veröffentlichten Debian-Patch. Bei genauerem Hinsehen entdeckte er, dass er zwar tatsächlich die Absturzursache beseitigte, dabei aber auch den Speicherschutz aushebelte. Der Debian-Patch führte nämlich einen Zeiger auf die schreibgeschützte Suhosin-Konfiguration ein. Ein gewiefter Angreifer könnte somit statt die Konfiguration direkt zu manipulieren, eine neue mit den gewünschten Eigenschaften erstellen und den Zeiger auf diese umbiegen.

So weit könnte man das noch unter "Shit happens" abbuchen. Doch statt dafür zu sorgen, dass der mangelhafte Patch möglichst schnell durch einen besseren ersetzt wird, veröffentlichte Esser zunächst einen Blog-Eintrag mit seiner persönlichen Sicht der Dinge. Unter anderem verglich er darin das Vorgehen der Debian-Maintainer mit dem Debian-Debakel bei OpenSSL. Im Gefolge entspann sich eine heftige Diskussion, die vor allem durch Vorwürfe und verletzte Eitelkeiten geprägt war. Mittlerweile hat Esser Teile seines Blog-Eintrags gelöscht beziehungsweise überarbeitet und das Forum für Kommentare komplett gesperrt. Darüber hinaus hat er seinen ersten Vorschlag für einen besseren Patch zurückgezogen. Einen Patch, der die Abstürze ohne Sicherheitseinbußen beseitigt, gibt es nach unserem Kenntnisstand noch nicht. (ju)