Open Source im professionellen Einsatz

SquirrelMail: Entfernter Angreifer kann Befehle ausführen

Eine Sicherheitslücke in der SquirrelMail-Applikation hat zur Folge, dass ein entfernter, angemeldeter Angreifer Befehle auf dem Server ausführen kann. Der Programmierfehler befindet sich in der »initStream()«-Funktion in der »Deliver_SendMail.class.php«-Datei. Diese filtert die Argumente für einen »popen()«-Aufruf nicht ordentlich. Dies ist kritisch, weil die »popen()«-Funktion einen Prozess startet, um Befehle auszuführen. Dadurch ist ein entfernter Angreifer dann in der Lage eine Sendmail-Konfiguration auf das System zu laden und dann Befehle auszuführen.

Eigentlich macht die Applikation alles richtig und ruft zum Filtern der Benutzeingaben die »escapeshellcmd()«-Funktion auf, die genau solche Problem vermeiden soll. Allerdings haben die Entwickler vergessen auch Whitespaces beim Anwenden der Funktion zu unterbinden. Der fehlerhafte Code sieht wie folgt aus:

$this->sendmail_command = "$sendmail_path $this->sendmail_args -f$envelopefrom";
$stream = popen(escapeshellcmd($this->sendmail_command), "w";

Der Angfreifer kann hier den Wert der »$envelopefrom«-Variable vorgeben und so die Attacke ausführen. Ein Patch und Exploit sind ebenfalls unter obiger URL zu finden.

Betroffen ist die Version 1.4.22 und eventuell auch noch ältere Versionen.

comments powered by Disqus

Ausgabe 10/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.