Menü
Alert!
Security

Löcher in G/PGP-Plug-in für Squirrelmail [Update]

vorlesen Drucken Kommentare lesen 15 Beiträge

Der Sicherheitsdienstleister iDefense beschreibt in vier Fehlerberichten Lücken im Verschlüsselungs-Plug-in G/PGP für die beliebte Webmail-Anwendung Squirrelmail. Über drei der Lücken kann ein Angreifer beliebige Befehle auf dem System mit den Rechten des Webservers ausführen. Für zwei davon ist eine vorherige Anmeldung an Squirrelmail erforderlich. Ein Lücke lässt sich durch präparierte E-Mails ausnutzen.

Ob es sich bei den bekannt gewordenen Lücken um eine der auf WasiSabiLabi derzeit per Auktion zu kaufenden Lücken handelt, ist nicht klar. Immerhin kauft auch iDefense Informationen über Sicherheitsprobleme auf, allerdings hätte man dann per Sofortkauf zuschlagen müssen. Während der Auktion der Lücke, die sich in Version 2.0 des Plug-ins finden soll, gab es ein Update auf 2.1. Unter Umständen ersteigern die Bieter also Informationen über eine bereits geschlossene Lücke. Die bisher gebotenen 700 Euro wären also umsonst ausgegeben.

Die von iDefense nun veröffentlichten Fehler stecken in gpg_recv_key in der Datei gpg_key_functions.php, gpg_check_sign_pgp_mime in der Datei gpg_hook_functions.php sowie deleteKey im Modul gpg_keyring.php. Alle Funktionen rufen die Funktion exec() für externe Befehle auf, übergeben dabei aber Benutzerparameter völlig ungefiltert. Für den Fehler in gpg_check_sign_pgp_mime benötigt der Angreifer kein Squirrelmail-Konto, es genügt, dass ein Opfer eine präparierte Mail öffnet. Mit geschickten Befehlen könnte ein Angreifer darüber sogar eine Netzwerk-Shell öffnen. Der vierte Fehler ermöglicht es, lokal abgelegte PHP-Skripte einzubinden und auszuführen. Schuld sind die Skripte gpg_help.php und gpg_help_base.php, die per HTTP-GET übergebene Parameter nicht filtern.

Die Entwickler des Plug-ins wurden von iDefense bereits am 27. Oktober 2005 informiert, haben aber auch nach mehrmaliger Nachfrage nicht reagiert. Zwar ist am 7. Juli 2007 die Version 2.1 des Plug-ins erschienen, die Lücken in deleteKey und gpg_recv_key sind dort aber weiterhin zu finden. Immerhin sind die Schwachstellen in gpg_check_sign_pgp_mime und gpg_help.php und gpg_help_base.php behoben. Anwender der Version 2.0 oder älterer Versionen sollten auf die aktuelle Version updaten und die von iDefense empfohlenen zusätzlichen Zeilen als Workaround im Code einfügen. Weitere Details dazu finden sich im Original-Fehlerbericht.

Nach Lesart von ImmunitySec hätten damit die Zero-Day-Lücken eine Haltbarkeit von immerhin 618 (bis zum Update) respektive 623 (bis zum Bekanntwerden der Lücken) erreicht. Der Durchschnitt soll bei 348 Tagen liegen.

Update
Einem Posting auf Bugtraq zufolge handelt es sich bei der per Auktion angebotenen Lücke um einen Fehler in der Datei keyring_main.php, in der Shell-Befehle wie in den oben genannten Funktionen nicht richtig escaped werden.

Siehe dazu auch:

(dab)