Website-Suche

Curl 8.9.0 Veröffentlicht: Neue Funktionen, Fehlerbehebungen und wie man es installiert


Daniel Stenberg, der schwedische Open-Source-Entwickler und Maintainer von Curl, hat die Veröffentlichung von Curl 8.9.0 angekündigt. Diese Version markiert einen bedeutenden Meilenstein in der Geschichte des Projekts, mit satten 260 Fehlerbehebungen, 11 Änderungen und 2 Sicherheitsupdates.

Curl 8.9.0 Veröffentlichungsstatistiken

Curl ist eine der ältesten und ausgereiftesten Software im Open-Source-Ökosystem.

Curl 8.9.0 ist die 258. Veröffentlichung der Software und zeigt das anhaltende Engagement des Projekts für Verbesserung und Innovation.

Die neue Version umfasst 11 Änderungen und beeindruckende 260 Fehlerbehebungen, was einen Rekord für das Projekt darstellt. Diese Verbesserungen wurden durch 423 Commits von einer vielfältigen Gruppe von 80 Mitwirkenden eingebracht, darunter 38 Neueinsteiger. Die Veröffentlichung verzeichnete auch Beiträge von 47 Autoren, darunter 16 erstmalige Mitwirkende, was die wachsende Gemeinschaft des Projekts zeigt.

Das bringt die Gesamtzahl der Mitwirkenden auf beeindruckende 3.209, wobei bisher 1.288 Autoren zu dem Projekt beigetragen haben.

Hier ist die kurze Zusammenfassung der Veröffentlichungsstatistiken von Curl 8.9.0:

  • 258. Veröffentlichung,
  • 11 Änderungen umgesetzt,
  • 260 Fehlerbehebungen hinzugefügt,
  • 423 Commits gemacht,
  • 80 Beitragende, darunter 38 neue,
  • 47 Autoren, davon 16 Erstbeitragende.

Sicherheitsverbesserungen

Sicherheit bleibt eine oberste Priorität für Curl. Die Version 8.9.0 behebt zwei Sicherheitslücken: CVE-2024-6197 und CVE-2024-6874. Diese Korrekturen stärken das Sicherheitsprofil von Curl weiter.

Das erste, CVE-2024-6197, ist ein Problem mittlerer Schwere im ASN1-Parser. Diese Sicherheitslücke betrifft das Freigeben eines Stack-Puffers in der Funktion utf8asn1str.

Das Problem tritt im ASN1-Parser von libcurl auf, wenn die Funktion utf8asn1str ein ungültiges Feld erkennt und einen Fehler zurückgibt. Leider ruft sie dabei auch free() für einen 4-Byte-puffer auf dem lokalen Stack auf.

Das zweite, CVE-2024-6874, ist ein Problem niedriger Schwere, das mit Punycode-Konvertierungen in der URL-API zusammenhängt.

Das Problem tritt in der URL-API-Funktion curl_url_get() von libcurl auf, die Punycode-Konvertierungen zu und von IDN anbietet. Beim Konvertieren eines Namens, der genau 256 Byte groß ist, liest libcurl außerhalb eines stackbasierten Puffers, wenn es so gebaut ist, dass es das macidn-IDN-Backend verwendet. Die Konvertierungsfunktion füllt dann den bereitgestellten Puffer genau aus, terminiert die Zeichenkette jedoch nicht mit einem Nullbyte.

Neue Funktionen

Curl 8.9.0 führt mehrere neue Befehlszeilenoptionen ein, um seine Funktionalität zu verbessern. Benutzer können jetzt den IP-Diensttyp/die Verkehrsklasse mit der Option --ip-tos festlegen.

Die --mptcp-Option aktiviert Multipath TCP für Verbindungen und kann die Netzwerkleistung verbessern.

Für die Verwaltung des lokalen Netzwerks ermöglicht die Option --vlan-priority das Einstellen des VLAN-Prioritätsfeldes für IP-Datenverkehr.

Schließlich ermöglicht die Option --keepalive-cnt den Benutzern, die Anzahl der Keepalive-Prüfungen anzugeben, bevor eine Verbindung als tot markiert wird.

Verbesserungen

Das Update bringt verschiedene Verbesserungen der Curl-Funktionalitäten. Sowohl GnuTLS als auch WolfSSL unterstützen jetzt CA-Caching, was serielle TLS-Verbindungen erheblich beschleunigen kann.

MbedTLS fügt Unterstützung für CURLOPT_CERTINFO hinzu, wodurch Anwendungen Zertifikatsinformationen abrufen können.

Die URL-API führt CURLU_NO_GUESS_SCHEME für eine bessere Schemaerkennung ein. Zusätzlich können Benutzer jetzt eine Verbindung gleichzeitig an sowohl die Schnittstelle als auch die IP binden, was mehr Flexibilität in Netzwerk-Konfigurationen bietet.

Neue Optionen

Curl 8.9.0 führt eine neue curl_easy_setopt()-Option und vier neue Befehlszeilenoptionen ein. Diese Ergänzungen erweitern die Funktionalität von Curl und bieten den Benutzern mehr Werkzeuge und Flexibilität.

Bemerkenswerte Fehlerbehebungen

Diese Veröffentlichung enthält rekordverdächtige 260 Fehlerbehebungen, die meisten in der langen Geschichte von Curl. Die Verbesserungen betreffen verschiedene Bereiche, einschließlich zahlreicher Verbesserungen an CMake und den Konfigurationsskripten.

Dokumentations- und Hilfefunktionen wurden für ein besseres Benutzererlebnis verbessert. Das Team hat Speicherlecks und Abstürze in DNS over HTTPS (DoH)-Implementierungen behoben.

Der Umgang mit HTTPS-, QUIC- und TLS-Verbindungen wurde verbessert. Das Release enthält außerdem eine bessere Unterstützung für verschiedene Betriebssysteme und SSL-Bibliotheken, wodurch Curl auf verschiedenen Plattformen vielseitiger einsetzbar ist.

Hier ist eine Liste bemerkenswerter Fehlerbehebungen in dieser Version:

  • cmake: 26 einzelne Fehlerbehebungen.
  • konfigurieren: 10 separate Fehlerbehebungen.
  • Hilfekategorie-Bereinigung: Verbesserung der --help-Ausgabe durch Auflisten der Kategorien und Bereinigen der Darstellung.
  • 3xx-Antworten: Erlaubt etag und content-disposition für 3xx-Antworten.
  • Dokumentation: Zahlreiche Korrekturen, Politur und Verbesserungen.
  • Testübersicht: Zeigen Sie Namen und Schlüsselwörter für fehlgeschlagene Tests in der Zusammenfassung an.
  • GetAddrInfoExW: Vermeiden Sie die Verwendung davon mit Imitation.
  • AWS Sigv4: URL-codieren Sie den kanonischen Pfad.
  • DoH (DNS über HTTPS): Verschiedene Korrekturen einschließlich Bereinigung, Behebung von Speicherlecks und Behebung von Abstürzen bei HTTPS-RR mit null Länge.
  • AppleIDN: Behebung der Handhabung von ß.
  • OpenSSL 1.x: Behebung von Kompilierungsproblemen bei deaktiviertem md4.
  • Fortschrittsaktualisierungen: Letzte Fortschrittsaktualisierung zum Verbindungsfehler hinzugefügt.
  • Multi: Festes Pollset während der RESOLVING-Phase.
  • QUIC: UDP GRO aktiviert und Unterstützung für das Herunterfahren hinzugefügt, nun wird OpenSSL 3.3 benötigt.
  • Eingabekonvertierung: Feste CRLF-Konvertierung der Eingabe.
  • SMTP: starttls für SMTP behoben.
  • TCP-Keepalive: Von Millisekunden auf Sekunden unter DragonFly BSD geändert und Parameter auf Solaris <11.4 unterstützt.
  • TLS und TCP: Verbesserter Shutdown.
  • GnuTLS: Übergeben im SNI-Namen anstelle des Hostnamens beim Überprüfen von Zertifikaten und die TLS-Versionsprüfungen für QUIC korrigiert.
  • mbedTLS v3.6.0: Workarounds hinzugefügt.
  • X509 ASN.1 Parser: Mehrere Korrekturen.

Mit zahlreichen Fehlerbehebungen, neuen Optionen und Sicherheitsverbesserungen stellt diese Version sicher, dass Curl ein leistungsfähiges und zuverlässiges Werkzeug für die Datenübertragung bleibt.

Laden Sie Curl 8.9.0 herunter und installieren Sie es

Sie können die neue Curl-Version wie immer von curl.se herunterladen. Da diese Version neu ist, ist sie noch nicht für die meisten Linux-Distributionen verpackt. Aber keine Sorge. Sie können die neueste Curl-Version aus dem Quellcode mit GNU Stow installieren.

1. Stellen Sie sicher, dass Ihre Systempaketdatenbank auf dem neuesten Stand ist.

sudo apt update   # For Debian/Ubuntu-based systems
sudo yum update   # For CentOS/RHEL systems
sudo dnf update   # For Fedora systems
sudo pacman -Syu  # For Arch Linux systems

2. Installieren Sie die notwendigen Entwicklungstools, falls sie noch nicht installiert sind.

sudo apt install build-essential   # Debian/Ubuntu
sudo yum groupinstall "Development Tools"   # CentOS/RHEL
sudo dnf groupinstall "Development Tools"   # Fedora
sudo pacman -S base-devel   # Arch Linux

Sie müssen auch die OpenSSL-Entwicklungsbibliotheken installieren, wenn Sie Curl mit dem OpenSSL-Backend kompilieren möchten. Beispielsweise können Sie auf Debian-basierten Systemen die OpenSSL-Entwicklungsbibliotheken mit dem Befehl installieren:

sudo apt install libssl-dev

Wenn Sie Curl mit dem GnuTLS-Backend kompilieren möchten, installieren Sie Folgendes auf einem Debian-basierten System:

sudo apt install libgnutls28-dev libgnutls30

3. Installiere GNU Stow.

sudo pacman -S stow     # Arch Linux
sudo apt install stow   # Debian/Ubuntu
sudo yum install stow   # Older CentOS/RHEL
sudo dnf install stow   # Latest Fedora/RHEL/AlmaLinux/Rocky Linux

4. Laden Sie den neuesten Curl-Quellcode von seiner offiziellen Releases-Seite herunter und entpacken Sie ihn.

wget https://github.com/curl/curl/releases/download/curl-8_9_0/curl-8.9.0.tar.gz
tar xvf curl-8.9.0.tar.gz

5. Konfigurieren Sie den Build mit dem Präfix.

Wechsle in das extrahierte Verzeichnis:

cd curl-8.9.0

Konfigurieren Sie den Build mit dem TLS-Backend und dem Installationsverzeichnis, das von GNU Stow verwaltet wird.

./configure --with-ssl --prefix=/usr/local/stow/curl-8.9.0

Wenn Sie Curl mit GnuTLS konfigurieren möchten, verwenden Sie stattdessen diesen Befehl:

./configure --with-gnutls --prefix=/usr/local/stow/curl-8.9.0

6. Kompilieren Sie die Software.

make

7. Installiere Curl 8.9.0

sudo make install

8. Verwenden Sie GNU Stow, um Curl zu Ihrem PATH hinzuzufügen.

Wechseln Sie in das Stow-Verzeichnis und verwenden Sie stow, um die Installation zu verwalten.

cd /usr/local/stow
sudo stow curl-8.9.0

9. Überprüfen Sie, dass Curl korrekt installiert und zugänglich ist.

curl --version

Beispielausgabe:

curl 8.9.0 (x86_64-pc-linux-gnu) libcurl/8.9.0 GnuTLS/3.7.1 zlib/1.2.11 libidn2/2.3.0
Release-Date: 2024-07-24
Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HSTS HTTPS-proxy IDN IPv6 Largefile libz NTLM SSL threadsafe TLS-SRP UnixSockets

Curl-Version überprüfen

Ein Blick nach vorn: Curl 8.10.0

Aufgrund des verlängerten Veröffentlichungszyklus für Curl 8.9.0 sagt der Entwickler, dass die nächste Veröffentlichung 8.10.0 einen verkürzten Zyklus haben wird.

Er fügte auch hinzu, dass das Feature-Fenster für Curl 8.10.0 nur zwei Wochen betragen wird, was die Anzahl der neuen Funktionen und Änderungen, die zusammengeführt werden können, beeinflussen könnte.

Trotzdem gibt es bereits eine große Anzahl von Pull-Anfragen, die auf die Zusammenführung warten und auf das Öffnen des Veröffentlichungsfensters warten.

Wenn alles gut geht, wird Curl 8.10.0 voraussichtlich am 11. September 2024 veröffentlicht. Diese bevorstehende Veröffentlichung wird die Tradition der Verbesserung und Innovation fortsetzen, für die Curl bekannt ist.

Für weitere Details lesen Sie bitte die offiziellen Versionshinweise:

  • Curl 8.9.0 Versionshinweise

Verwandte Lektüre:

  • Wcurl: Eine benutzerfreundliche Curl-Wrapper für einfache Dateidownloads
  • Debian Curl unterstützt jetzt HTTP3: Was Sie wissen müssen
  • So installieren Sie Curl mit GnuTLS-Backend in Debian