Neue cURL-Version behebt Pufferüberlauf bei SOCKS5-Verbindungen

Die in der vergangenen Woche angekündigte schwere Sicherheitslücke in der Bibliothek für Web-Verbindungen versteckt sich im SOCKS5-Code.

In Pocket speichern vorlesen Druckansicht 29 Kommentare lesen
HTTP-Fehler 451 (Unavailable For Legal Reasons) auf PC-Monitor

(Bild: M-SUR/Shutterstock.com)

Update
Lesezeit: 3 Min.
Inhaltsverzeichnis

In der aktuellen Version 8.4.0 behebt die weitverbreitete Toolsammlung für Web-Transfers eine hochriskante Sicherheitslücke bei SOCKS5-Verbindungen und einen niedrig priorisierten Fehler in der Handhabung von Cookies. Das Sicherheitsupdate war vom cURL-Gründer letzte Woche als "schwerste Lücke seit Langem" angekündigt worden und hatte für Nervosität bei Admins gesorgt.

Informationen zur vergangenen Woche angekündigten Sicherheitslücke CVE-2023-38545 mit dem Schweregrad "hoch" trudelten um Punkt 8 Uhr auf Security-Mailinglisten und im Web ein: Der Bug entpuppt sich als Pufferüberlauf im Programmcode zur Handhabung von SOCKS5-Verbindungen. Ein Angreifer, welcher einen Webserver kontrolliert, kann seinem Opfer – etwa einen auf libcurl basierenden RSS-Reader oder API-Client – eine HTTP-Weiterleitung zu einer Domain mit einem sehr langen Hostnamen unterschieben. Beim Versuch, diesen Hostnamen zu einer IP-Adresse aufzulösen, verstolpert sich die cURL-Bibliothek und überschreibt einen Puffer mit dem überlangen Hostnamen. Dieser Pufferüberlauf könnte vom Angreifer genutzt werden, um eigenen Code auszuführen.

Es ist jedoch stets notwendig, dass das angegriffene Programm einen SOCKS5-Proxy verwendet, um auf den bösartigen Webserver zuzugreifen. Durch diese notwendige Bedingung dürfte die Zielgruppe für potenzielle Angriffe deutlich kleiner werden. Da ein Angreifer den Pufferüberlauf jedoch aus der Ferne auslösen kann, scheint Stenbergs hohe Risikoeinschätzung plausibel.

Abseits des SOCKS5-Bugs behebt das cURL-Team in der am heutigen Mittwoch veröffentlichten Version auch eine Sicherheitslücke, die Angreifern unter bestimmten Bedingungen erlaubt, der cURL-Bibliothek Cookies unterzuschieben. Dazu müssen jedoch mehrere Vorbedingungen erfüllt sein. So muss der Angreifer etwa in der Lage sein, eine Datei namens "none" im Arbeitsverzeichnis des angegriffenen Programms zu beschreiben. Die Entwickler schätzen das Risiko, das mit diesem Fehler (CVE-2023-38546) einhergeht, demnach auch als niedrig ein.

Der cURL-Autor äußert sich in seinem Blog ausführlich zu der Sicherheitslücke und wie sie hätte vermieden werden können. Stenberg zufolge seien bis zu 20 Milliarden Installationen der URL-Werkzeugsammlung betroffen. cURL auf eine Sprache mit sichererer Speicherverwaltung, etwa Rust, zu portieren, komme jedoch nicht infrage.

Im Laufe des 11. Oktober haben viele Linux-Distributionen Updates zur Verfügung gestellt. So finden sich für Ubuntu die cURL-Versionen 7.81.0-1ubuntu1.14 (22.04 "jammy") und 7.88.1-8ubuntu2.3 (23.04 "lunar") in der Paketdatenbank; ältere Versionen sind nicht verwundbar. Debian hatte bereits früh am Mittwoch vorgelegt und bietet unter Anderem geflickte cURL-Pakete mit den Versionsnummern 7.74.0-1.3+deb11u10 für Debian 11 "bullseye" und 7.88.1-10+deb12u4 für Debian 12 "bookworm" an.

Daniel Stenberg hat den Programmierfehler im SOCKS5-Code in das Jahr 2020 zurückverfolgt, sodass alle cURL-Versionen seit 7.69.0 bis einschließlich 8.3.0 betroffen sind. In der soeben erschienenen Version 8.4.0 ist das Leck gestopft.

Update

Versionsnummer der betroffenen Versionen korrigiert und präzisiert.

Update

Updates für Debian und Ubuntu sind mittlerweile erschienen. Wir haben den entsprechenden Absatz im Text angepaßt.

(cku)