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

Você precisa ver isso

Todos os arquivos do blog

Mostrar mais