libcurl-Bibliothek: Drei Speicher-Schwachstellen

Curl (Client for URLs / Curl URL Request Library) ist eine Programmbibliothek und ein Kommandozeilen-Programm zum Übertragen von Dateien über Netzwerkverbindungen. Die zugehörige Programmbibliothek libcurl wird von zahlreichen Programmen und Programmiersprachen verwendet. In dieser libcurl-Bibliothek wurden drei kritische Schwachstellen im Speichermanagement entdeckt, die von entfernten Angreifern ausgenutzt werden können.

Das erste Problem tritt im SSL-Code der libcurl-Bibliothekt auf. Der Programmfehler betrifft die Speicherallokation für die connectdata-Struktur. Diese wird immer vor dem Aufbau einer SSL-Verbindung angelegt. Auf 32-Bit-Systemenen kommt es hier zu einem Problem bei der Berechnung der gesamten Speichergröße. Genauer tritt die Schwachstelle immer dann auf, wenn sizeof(long long *) < sizeof(long long) gilt. Laut Advisory ist dies nur für 32-Bit-Versionen der Fall. Das hat zur Folge, dass insgesamt 4 Bytes zu wenig alloziert werden. Für den letzten Eintrag der Struktur steht dadurch nicht mehr genug Speicher zur Verfügung. Greift der Programmcode nun auf dieses Element zu, so kommt es zu einem Speicherfehler. Ein entfernter Angreifer kann durch diese Sicherheitslücke einen Absturz der Applikation hervorrufen. Betroffen hiervon sind die Versionen 7.56.0 bis 7.56.1.

Das zweite Problem tritt bei FTP-Verbindungen auf. Hier kommt es zu einem Out-of-Bound-Speicherfehler in der FTP-Wildcard-Matching-Funktion (CURLOPT_WILDCARDMATCH-Option). Diese Funktion enthält einen Fehler beim Verarbeiten von Mustern, die mit einer offenenen Klammer enden. Infolgedessen liest der Programmcode Speicher über den allozierten Heap-Bereich hinaus. Dadurch kann der Angreifer den Client auf andere FTP-Site weiterleiten. Betroffen hiervon sind die Versionen 7.21.0 bis 7.56.1.

Ein weiterer Overflow-Fehler befindet sich in dem NTLM-Authentifikationscode. Hier summiert die Curl_ntlm_core_mk_ntlmv2_hash()-Funktion die Länge des Benuternamens und Passworts, um die zu allozierende Größe auf dem Heap zu ermitteln. Auf 32-Bit-Systemen kann es hier zu einem Integer Overflow kommen, falls die zu bestimende Summe mehr als 2^31 Bytes (2GB) lang ist. Dadurch ist ein entfernter Angreifer in der Lage Befehle mit den Rechten der Appikation auszuführen. Betroffen hiervon sind die Versionen 7.15.4 bis 7.56.1.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben