Aniversário do Curl com o lançamento da versão 8.0.0


O Curl 8.0.0 é lançado com correções de segurança e melhorias e seu aniversário de 25 anos.

Aniversário do Curl com o lançamento da versão 8.0.0


O cURL é um projeto de software de computador que fornece uma biblioteca e uma ferramenta de linha de comando para transferir dados usando vários protocolos .O projeto cURL produz dois produtos, libcurl e cURL. Lançado pela primeira vez em 1997, o nome cURL vem do inglês "Client URL", que significa "URL do cliente". Wikipédia
 
O anúncio foi feito em 20 de Março de 2023

"Exatamente um mês desde o lançamento anterior, temos o prazer de oferecer a você o curl 8.0.0 lançado no aniversário oficial de 25 anos do curl.
Este é um aumento no número da versão principal, mas sem nenhuma mudança inovadora ou fogos de artifício. Decidimos que era hora de redefinir o número menor para um nível mais gerenciável e fazê-lo exatamente no aniversário de 25 anos do curl tornou tudo ainda mais divertido. Não há quebra de API nem ABI nesta versão.

Este é provavelmente o melhor lançamento de curl que já fizemos."

Destaques

  • build: abandona o uso de XC_AMEND_DISTCLEAN
  • connect: corrige as estatísticas do timer time_connect e time_appconnect
  • curl.1: lista todas as “opções globais”
  • ftp: modo ativo com SSL, adicione o filtro
  • substituído sscanf () em vários analisadores
  • headers: curl_easy_header e nextheader retornar buffers diferentes
  • http2 correções de bugs
  • http: não envia 100-continue para solicitações PUT curtas
  • http: corrige o uso de soquete de domínio unix em conexões https
  • multi: faz com que sinais multi_perform ignore/unignore com menos frequência
  • multi: remove identificadores PENDING + MSGSENT da lista vinculada principal
  • rand: use arc4random como fallback quando disponível
  • urlapi: ‘%’ é ilegal em nomes de host
  • urlapi: analisa literais IPv6 sem ENABLE_IPV6
  • ligação a uma interface com nome de host usando c-ares

 

Correções de segurança


CVE-2023-27533: Injeção IAC da opção TELNET O curl oferece suporte à comunicação usando o protocolo TELNET e, como parte disso, oferece aos usuários a passagem de nome de usuário e “opções de telnet” para a negociação do servidor. Devido à falta de depuração de entrada adequada e sem ser a funcionalidade documentada, o curl passaria o nome de usuário e as opções de telnet para o servidor conforme fornecido. Isso pode permitir que os usuários transmitam conteúdo cuidadosamente elaborado que transmita conteúdo ou faça negociação de opções sem que o aplicativo pretenda fazê-lo. Em particular, se um aplicativo, por exemplo, permitir que os usuários forneçam os dados ou partes dos dados. CVE-2023-27534: caminho SFTP ~ resolvendo discrepância curl suporta transferências SFTP. A implementação SFTP do curl oferece um recurso especial no componente de caminho de URLs: um caractere til (~) como o primeiro elemento de caminho no caminho para denotar um caminho relativo ao diretório inicial do usuário. Isso é suportado por causa do texto no rascunho da RFC, uma vez proposto para se tornar, que ditaria como os URLs SFTP funcionam. Devido a um bug, o tratamento do til no caminho SFTP não apenas o substituiu quando usado sozinho como o primeiro elemento do caminho, mas também erroneamente quando usado como um mero prefixo no primeiro elemento. Usar um caminho como /~2/foo ao acessar um servidor usando o usuário dan (com o diretório inicial /home/dan) acessaria surpreendentemente o arquivo /home/dan2/foo. Isso pode ser aproveitado para contornar a filtragem ou pior. CVE-2023-27535: Reutilização de conexão FTP muito ansiosa libcurl reutilizaria uma conexão FTP criada anteriormente, mesmo quando uma ou mais opções tivessem sido alteradas, o que poderia tornar o usuário efetivo muito diferente, levando à realização da segunda transferência com credenciais erradas. A libcurl mantém as conexões usadas anteriormente em um pool de conexões para transferências subsequentes para reutilização se uma delas corresponder à configuração. No entanto, várias configurações de FTP foram deixadas de fora das verificações de correspondência de configuração, fazendo com que correspondam com muita facilidade. As configurações nas perguntas são nível CURLOPT_FTP_ACCOUNT, CURLOPT_FTP_ALTERNATIVE_TO_USER, CURLOPT_FTP_SSL_CCC e CURLOPT_USE_SSL. CVE-2023-27536: delegação GSS muito ansiosa para reutilização de conexão A libcurl reutilizaria uma conexão criada anteriormente mesmo quando a opção de delegação GSS (CURLOPT_GSSAPI_DELEGATION) tivesse sido alterada, o que poderia ter alterado as permissões do usuário em uma segunda transferência. A libcurl mantém as conexões usadas anteriormente em um pool de conexões para transferências subsequentes para reutilização se uma delas corresponder à configuração. No entanto, essa configuração de delegação GSS foi deixada de fora das verificações de correspondência de configuração, fazendo com que correspondam com muita facilidade, afetando as transferências krb5/kerberos/negotiate/GSSAPI. CVE-2023-27537: HSTS duplo livre libcurl suporta o compartilhamento de dados HSTS entre “alças” separadas. Esse compartilhamento foi introduzido sem considerações para fazer esse compartilhamento em threads separados, mas não havia indicação desse fato na documentação. Devido à falta de mutexes ou bloqueios de encadeamento, dois encadeamentos que compartilham os mesmos dados HSTS podem acabar fazendo um double-free ou use-after-free. CVE-2023-27538: Conexão SSH muito ansiosa para reutilização ainda libcurl reutilizaria uma conexão criada anteriormente, mesmo quando uma opção relacionada ao SSH tivesse sido alterada, o que deveria proibir a reutilização. A libcurl mantém as conexões usadas anteriormente em um pool de conexões para transferências subsequentes para reutilização se uma delas corresponder à configuração. No entanto, duas configurações de SSH foram deixadas de fora das verificações de correspondência de configuração, fazendo com que correspondam com muita facilidade


Comentários

Todos os arquivos do blog

Mostrar mais