Das Netzwerktool curl feiert sein 25-jähriges Bestehen. Zu diesem Anlass wurde eine neue bedeutende Version, cURL 8.0, veröffentlicht. Die erste Version der vorherigen cURL 7.x-Reihe wurde im Jahr 2000 erstellt, und seitdem ist der Code von 17.000 auf 155.000 Zeilen angewachsen. Die Anzahl der Befehlszeilenoptionen wurde auf 249 erhöht, die Unterstützung für 28 Netzwerkprotokolle, 13 kryptografische Bibliotheken sowie 3 SSH-Bibliotheken und 3 HTTP/3-Bibliotheken wurde implementiert. Der Code des Projekts wird unter der Curl-Lizenz (einer Variante der MIT-Lizenz) veröffentlicht.
Für HTTP/HTTPS bietet das Tool die Möglichkeit, Netzwerkanfragen flexibel zu gestalten, indem Parameter wie Cookie, user_agent, referer und andere Header festgelegt werden können. Neben HTTPS, HTTP/1.x, HTTP/2.0 und HTTP/3 unterstützt das Tool das Versenden von Anfragen über SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP und andere Netzwerkprotokolle. Parallel dazu wird die Bibliothek libcurl weiterentwickelt, die eine API für die Nutzung aller Funktionen von curl in Programmen in Sprachen wie C, Perl, PHP und Python bereitstellt.
Die neue Version cURL 8.0 bringt keine grundlegenden Neuerungen oder inkompatiblen Änderungen an der API und ABI mit sich. Die Änderung der Versionsnummer erfolgt aus Anlass des 25-jährigen Bestehens des Projekts und um endlich die zweite Ziffer der Version loszuwerden, die seit über 22 Jahren anhäuft.
In der neuen Version wurden 6 Schwachstellen in den Protokollhandlern TELNET, FTP, SFTP, GSS, SSH, HSTS behoben, von denen 5 als geringfügig und eine mit einem mittleren Gefährdungsniveau (CVE-2023-27535, die Möglichkeit der Wiederverwendung einer zuvor erstellten FTP-Verbindung mit anderen Parametern, einschließlich bei abweichenden Benutzerdaten) eingestuft wird. Zu den Änderungen, die nicht mit der Behebung von Schwachstellen und Fehlern zusammenhängen, gehört nur die Einstellung der Unterstützung für Compiler auf Systemen, für die keine funktionalen 64-Bit-Datentypen vorhanden sind (für die Kompilierung ist jetzt der Datentyp „long long“ erforderlich).
Kurz nach der Veröffentlichung von 8.0.0 wurde die Version 8.0.1 veröffentlicht, die einen Fehlerbehebungspatch für einen Fehler enthielt, der in einigen Testzenarien zu einem Absturz führte.
Quelle: opennet.ru
