curl 7.71.0 lançado, corrigindo duas vulnerabilidades

Disponível nova versão do utilitário para recebimento e envio de dados pela rede - curvatura 7.71.0, que fornece a capacidade de formular uma solicitação com flexibilidade, especificando parâmetros como cookie, user_agent, referenciador e quaisquer outros cabeçalhos. cURL suporta HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, Telnet, FTP, LDAP, RTSP, RTMP e outros protocolos de rede. Paralelamente, foi lançada uma atualização para a biblioteca libcurl, que está sendo desenvolvida em paralelo, disponibilizando uma API para utilização de todas as funções curl em programas em linguagens como C, Perl, PHP, Python.

A nova versão adiciona a opção “--retry-all-errors” para tentar novamente as operações se ocorrer algum erro e corrige duas vulnerabilidades:

  • Vulnerabilidade CVE-2020-8177 permite substituir um arquivo local no sistema ao acessar um servidor controlado pelo invasor. O problema só aparece quando as opções “-J” (“–remote-header-name”) e “-i” (“—head”) são usadas simultaneamente. A opção "-J" permite salvar o arquivo com o nome especificado no cabeçalho
    "Disposição de conteúdo". Se já existir um arquivo com o mesmo nome, o programa curl normalmente se recusa a realizar uma substituição, mas se a opção “-i” estiver presente, a lógica de verificação é quebrada e o arquivo é sobrescrito (a verificação é realizada no estágio de receber o corpo da resposta, mas com a opção “-i” os cabeçalhos HTTP são exibidos primeiro e têm tempo para serem salvos antes que o corpo da resposta comece a ser processado). Somente cabeçalhos HTTP são gravados no arquivo, mas o servidor pode enviar dados arbitrários em vez de cabeçalhos e eles serão gravados.

  • Vulnerabilidade CVE-2020-8169 pode levar ao vazamento para o servidor DNS de algumas senhas de acesso ao site (Basic, Digest, NTLM, etc.). Ao usar o símbolo "@" em uma senha, que também é usado como separador de senha na URL, quando um redirecionamento HTTP for acionado, o curl enviará a parte da senha após o símbolo "@" junto com o domínio para resolver o nome. Por exemplo, se você fornecer a senha "passw@rd123" e o nome de usuário "dan", o curl irá gerar a URL "https://dan:passw@[email protegido]/caminho" em vez de "https://dan:passw%[email protegido]/path" e enviará uma solicitação para resolver o host "[email protegido]" em vez de "exemplo.com".

    O problema aparece quando o suporte para redirecionadores HTTP relativos está habilitado (desabilitado via CURLOPT_FOLLOWLOCATION). Se o DNS tradicional for usado, as informações sobre parte da senha podem ser obtidas pelo provedor de DNS e por um invasor que tenha a capacidade de interceptar o tráfego de rede em trânsito (mesmo que a solicitação original tenha sido via HTTPS, já que o tráfego de DNS não é criptografado). Quando DNS sobre HTTPS (DoH) é usado, o vazamento é limitado ao operador DoH.

Fonte: opennet.ru

Adicionar um comentário