Open Source im professionellen Einsatz

libcurl: Sicherheitsleck durch falsche Dokumentation

Die libcurl-Bibliothek ist zu cURL (Client for URLs oder Curl URL Request Library) gehörige Programmbibliothek. cURL selbst ist ein
Kommandozeilen-Programm zum Übertragen von Dateien in Rechnernetzen. Im Gegensatz zu dem älteren wget erlaubt es neben dem Herunterladen auch das Hochladen von Dateien.

Eine Sicherheitslücke in der libcurl-Bibliothek hat zur Folge, dass ein enternter Angreifer das Prüfen von Zertifikaten umgehen kann. Das Problem tritt bei TLS-Verbindungen auf, wenn der Host direkt via IP-Adresse angegeben wird oder when explizit nach SSLv3 verlangt wird. Die Schwachstelle ist nur in libcurl-Versionen enthalten, die mbedTLS oder PolarSSL als Backend enthalten.

Bei der Verwendungen von mbedTLS und PolarSSL kommt es dann zu einem Programmierfehler, der auf eine falsche Dokumentation einer API-Funktion zurückgeht. Dabei handelt es sich um die *sslsethostname()-Funktion, die laut Dokumentation von mbedTLS und PolarSSL angeblich nur den Namen für die TLS-Erweiterung SNI festlegt. Was die Dokumentation allerdings verschweigt, ist die Tatsache, dass der übergebene String auch verwendet wird, um Server-Zertifikate zu kontrollieren. Dies hat zur Folge, dass die Überprüfung des Zertifikates nicht durchgeführt wird, wenn kein Hostname via *sslsethostname() zuvor gesetzt wurde. Die Überprüfung wird in diesem Fall einfach übersprungen und der Code fährt mit dem weiteren Handshake fort.

Zu einer solchen Situation kann es kommen, wenn direkt eine IP-Adresse für den Host angegeben wird, oder wenn SSLv3 verwendet wird. Im letztgenannten Fall wird SNI nicht verwendet, weshalb die Funktion dann ebenfalls nicht aufgerufen wird. Das hat dann zur Folge, dass alle auf TLS-basierenden Protokolle (HTTPS, FTPS, IMAPS, POPS3, SMTPS, usw.) nicht zertifizierte Verbindungen zulassen. Damit ist dann auch der gesamte Netzwerkverkehr zwischen Client und Server nicht mehr geschützt, so dass ein Angreifer auch Man-in-the-Middle-Attacken durchführen kann.

Betroffen sind die Versionen 7.21.0 bis 7.48.0.

comments powered by Disqus

Stellenmarkt

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