Curl 8.9.0 Release: 260 Correction de bogues et améliorations multiples
Le développeur open source suédois Daniel Stenberg a annoncé la sortie de Curl 8.9.0, une étape importante dans l'histoire du développement du projet. Cette version contient une incroyable correction de bugs 260, 11 modifications et 2 correctifs de sécurité.
Table des matières
Curl est l'un des logiciels les plus anciens et les plus matures de l'écosystème open source.
Curl 8.9.0 est la 258e version du logiciel, démontrant l'engagement continu du projet à l'amélioration et à l'innovation.
La nouvelle version a 11 modifications et une impressionnante correction de bogues 260, définissant un enregistrement pour le projet. Ces améliorations proviennent de 423 soumissions de 80 contributeurs, dont 38 débutants. Cette édition a également reçu des contributions de 47 auteurs, dont 16 contributeurs pour la première fois, montrant la communauté croissante du projet.
Cela apporte le nombre total de contributeurs à un impressionnant 3209, avec 1288 auteurs contribuant au projet jusqu'à présent.
Ce qui suit est un bref résumé des statistiques de la version Curl 8.9.0:
La sécurité reste la priorité de Curl. La version 8.9.0 résout deux vulnérabilités : CVE-2024-6197 et CVE-2024-6874 . Ces correctifs améliorent encore les fonctionnalités de sécurité de Curl.
La première vulnérabilité, CVE-2024-6197 , est un problème modérément de gravité dans l'analyseur ASN1. Cette vulnérabilité consiste à libérer le tampon de pile dans la fonction UTF8ASN1STR.
Ce problème se produit dans l'analyseur ASN1 de libcurl lorsque la fonction UTF8ASN1STR détecte un champ non valide et renvoie une erreur. Malheureusement, il appelle également gratuitement () sur un tampon de pile local de 4 octets.
La deuxième vulnérabilité, CVE-2024-6874 , est un problème de faible sévérité lié à la conversion de punycode dans l'API URL.
Ce problème se produit dans la fonction API URL Curl_Url_get () de Libcurl, qui fournit une conversion du code de puzzle en idn. Lors de la conversion d'un nom exactement 256 octets, Libcurl lit du contenu en dehors du tampon de pile lorsqu'il est construit pour utiliser le backend MACIDN IDN. La fonction de conversion remplit alors complètement le tampon fourni, mais ne se termine pas avec Null.
Curl 8.9.0 présente plusieurs nouvelles options de ligne de commande pour améliorer sa fonctionnalité. Les utilisateurs peuvent désormais définir la catégorie Type de service IP / trafic à l'aide de l'option --ip-TOS.
L'option - MPTCP permet les connexions TCP à trajets multiples, ce qui peut améliorer les performances du réseau.
Pour la gestion des réseaux locaux, l'option --vlan-priority permet de définir le champ de priorité VLAN pour le trafic IP.
Enfin, l'option - GreekeveLive-CNT permet à l'utilisateur de spécifier le nombre de sondes Keepalive avant de marquer la connexion comme non valide.
Cette mise à jour apporte diverses améliorations aux capacités de Curl. GnuTLS et WolfSSL prennent désormais en charge la mise en cache CA , ce qui peut considérablement accélérer les connexions TLS série.
MBEDTLS ajoute la prise en charge de Curlopt_certinfo, permettant aux applications de récupérer des informations sur le certificat.
L'API URL présente Curlu_No_Guess_Scheme pour mieux effectuer la détection du schéma. De plus, les utilisateurs peuvent désormais lier des connexions aux interfaces et aux IP, offrant une plus grande flexibilité dans la configuration du réseau.
Curl 8.9.0 présente une nouvelle option Curl_Easy_Setopt () et quatre nouvelles options de ligne de commande. Ces nouvelles fonctionnalités étendent les capacités de Curl, donnant aux utilisateurs plus d'outils et de flexibilité.
Cette version contient un record de 260 correctifs de bug, le plus dans la longue histoire de Curl. Ces améliorations couvrent divers domaines, y compris de nombreuses améliorations des scripts CMake et de configuration.
La documentation et les fonctionnalités d'aide ont été améliorées pour offrir une meilleure expérience utilisateur. L'équipe a résolu les fuites de mémoire et les plantages dans l'implémentation DNS sur HTTPS (DOH).
Le traitement des connexions HTTPS, Quic et TLS a été amélioré. Cette version comprend également une meilleure prise en charge de divers systèmes d'exploitation et des bibliothèques SSL, ce qui rend Curl plus universel sur différentes plates-formes.
Voici quelques correctifs de bogues importants dans cette version:
Avec de nombreuses corrections de bogues, de nouvelles options et des améliorations de sécurité, cette version garantit que Curl reste un outil de transfert de données puissant et fiable.
Vous pouvez toujours télécharger la nouvelle version Curl depuis Curl.se. Étant donné que cette version est nouvelle, elle n'a pas été emballée pour la plupart des distributions Linux. Mais ne vous inquiétez pas. Vous pouvez utiliser GNU Stow pour installer la dernière boucle de Source.
1. Assurez-vous que votre base de données de package système est à jour.
<code>sudo apt update # Debian/Ubuntu 系统sudo yum update # CentOS/RHEL 系统sudo dnf update # Fedora 系统sudo pacman -Syu # Arch Linux 系统</code>
2. Si les outils de développement nécessaires n'ont pas été installés, installez-les.
<code>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</code>
Si vous souhaitez compiler Curl à l'aide du backend OpenSSL, vous devez également installer la bibliothèque de développement OpenSSL. Par exemple, sur un système basé à Debian, vous pouvez installer la bibliothèque de développement OpenSSL à l'aide de la commande suivante:
<code>sudo apt install libssl-dev</code>
Si vous souhaitez compiler Curl à l'aide du backend GNUTLS, installez ce qui suit sur un système basé sur Debian:
<code>sudo apt install libgnutls28-dev libgnutls30</code>
3. Installez GNU Stow.
<code>sudo pacman -S stow # Arch Linux sudo apt install stow # Debian/Ubuntu sudo yum install stow # 旧版CentOS/RHEL sudo dnf install stow # 最新Fedora/RHEL/AlmaLinux/Rocky Linux</code>
4. Téléchargez le dernier code source Curl à partir de sa page de versions officielles et dézippez-la.
<code>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</code>
5. Build avec la configuration du préfixe.
Allez dans le répertoire décompressé:
<code>cd curl-8.9.0</code>
Construit avec le backend TLS et la configuration du répertoire d'installation pour la gestion par GNU Stow.
<code>./configure --with-ssl --prefix=/usr/local/stow/curl-8.9.0</code>
Si vous souhaitez configurer Curl à l'aide de GnutLS, utilisez la commande suivante à la place:
<code>./configure --with-gnutls --prefix=/usr/local/stow/curl-8.9.0</code>
6. Compiler le logiciel.
<code>make</code>
7. Installer Curl 8.9.0
<code>sudo make install</code>
8. Utilisez GNU Stow pour ajouter Curl à votre chemin.
Passez au répertoire de décrochage et utilisez le stand pour gérer l'installation.
<code>cd /usr/local/stow sudo stow curl-8.9.0</code>
9. Vérifiez que Curl est installé correctement et disponible.
<code>curl --version</code>
Exemple de sortie :
<code>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</code>
En raison du cycle de libération prolongé de Curl 8.9.0, le développeur a déclaré que la prochaine version 8.10.0 raccourcirait le cycle.
Il a également ajouté que la fenêtre de fonctionnalité de Curl 8.10.0 n'a que deux semaines, ce qui peut affecter le nombre de nouvelles fonctionnalités et modifications qui peuvent être fusionnées.
Néanmoins, il y a encore un grand nombre de demandes à fusionner en attendant l'ouverture de la fenêtre d'édition.
Si tout se passe bien, Curl 8.10.0 devrait être publié le 11 septembre 2024 . La prochaine version poursuivra la célèbre tradition d'amélioration et d'innovation de Curl.
Pour plus de détails, veuillez consulter les notes de publication officielles:
Lectures connexes :
Veuillez noter que le format de l'image reste le même car je n'ai pas modifié les informations de format de l'image dans le texte d'entrée. J'ai utilisé des titres et des descriptions similaires pour garder l'article intact.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!