A utilidade curl para enviar e recibir datos a través da rede cumpriu 25 anos. Para conmemorar a ocasión, creouse unha nova rama significativa, cURL 8.0. A primeira versión da rama anterior, curl 7.x, creouse no ano 2000 e, desde entón, a base de código creceu de 17 000 a 155 000 liñas de código, o número de opcións de liña de comandos aumentou a 249 e implementouse compatibilidade con 28 protocolos de rede, 13 bibliotecas criptográficas, 3 bibliotecas SSH e 3 bibliotecas HTTP/3. O código do proxecto distribúese baixo a licenza Curl (unha variante da licenza MIT).
Para HTTP/HTTPS, a utilidade proporciona unha xeración flexible de solicitudes de rede con parámetros como Cookie, User_Agent, Referer e calquera outra cabeceira. Ademais de HTTPS, HTTP/1.x, HTTP/2.0 e HTTP/3, a utilidade admite o envío de solicitudes mediante SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP e outros protocolos de rede. Tamén se está a desenvolver a biblioteca libcurl, que proporciona unha API para utilizar todas as funcións curl en programas escritos en linguaxes como C, Perl, PHP e Python.
A nova versión de cURL 8.0 non contén ningunha innovación importante nin cambios incompatibles na API ou ABI. O cambio na numeración de versións ten como obxectivo conmemorar o 25 aniversario do proxecto e eliminar finalmente o segundo díxito do número de versión, que se acumulou durante máis de 22 anos.
A nova versión corrixe seis vulnerabilidades nos xestores de protocolos TELNET, FTP, SFTP, GSS, SSH e HSTS. Cinco destas vulnerabilidades cualifícanse como leves e unha como moderada (CVE-2023-27535, que permite a reutilización dunha conexión FTP creada previamente con diferentes parámetros, mesmo cando as credenciais do usuario non coinciden). O único cambio non relacionado coa corrección de vulnerabilidades ou erros é a interrupción da compatibilidade coa compilación en sistemas que carecen de tipos de datos de 64 bits que funcionen (a compilación agora require o tipo "long long").
Pouco despois do lanzamento da versión 8.0.0, publicouse a versión 8.0.1 cunha corrección para un erro que se descubriu inmediatamente despois do lanzamento e que provocaba fallos nalgúns escenarios de proba.
Fonte: opennet.ru
