A ferramenta de transferência de dados pela rede, curl, completou 25 anos. Em celebração a este evento, uma nova versão significativa, cURL 8.0, foi lançada. O primeiro lançamento da versão anterior, curl 7.x, ocorreu em 2000, e desde então a base de código cresceu de 17 para 155 mil linhas, com o número de opções de linha de comando aumentando para 249, implementando suporte para 28 protocolos de rede, 13 bibliotecas criptográficas, 3 bibliotecas SSH e 3 bibliotecas HTTP/3. O código do projeto é distribuído sob a licença Curl (uma variante da licença MIT).
Para HTTP/HTTPS, a ferramenta oferece a possibilidade de configurar requisições de rede com parâmetros como Cookie, user_agent, referer e qualquer outro cabeçalho. Além de HTTPS, HTTP/1.x, HTTP/2.0 e HTTP/3, a ferramenta também suporta o envio de requisições usando SMTP, IMAP, POP3, SSH, Telnet, FTP, SFTP, SMB, LDAP, RTSP, RTMP e outros protocolos de rede. Paralelamente, a biblioteca libcurl está em desenvolvimento, fornecendo uma API para acessar todas as funções do curl em programas escritos em C, Perl, PHP, Python.
O novo lançamento cURL 8.0 não contém inovações radicais ou mudanças na compatibilidade API e ABI. A mudança na numeração visa comemorar os 25 anos do projeto e finalmente remover o segundo dígito da versão, que estava acumulando há mais de 22 anos.
Na nova versão, foram corrigidas 6 vulnerabilidades nos manipuladores dos protocolos TELNET, FTP, SFTP, GSS, SSH, HSTS, das quais 5 foram classificadas como menores e uma com um nível moderado de gravidade (CVE-2023-27535, a possibilidade de reutilização de uma conexão FTP previamente estabelecida com diferentes parâmetros, incluindo quando as credenciais do usuário estão diferentes). Entre as mudanças que não estão relacionadas a correções de vulnerabilidades e erros, destaca-se a descontinuação do suporte para compilações em sistemas que não possuem tipos de dados de 64 bits funcionais (agora é necessário ter o tipo "long long" para compilar).
Logo após o lançamento da versão 8.0.0, a versão 8.0.1 foi liberada para corrigir um erro encontrado imediatamente que causava falhas em alguns cenários de teste.
Fonte: opennet.ru
