Foi lançado o GNU Wget 1.25, um programa para automatizar o download de arquivos usando os protocolos HTTP/HTTPS e FTP/FTPS. A utilitária suporta funcionalidades como retomada de downloads interrompidos, espelhamento de sites com filtragem de dados baixados por máscaras, transformação de links dentro de documentos, gerenciamento de Cookies e atualização apenas dos arquivos que foram alterados. O código do projeto é escrito na linguagem C e é distribuído sob a licença GPLv3.
Na nova versão:
- Foi reescrita a análise de parte da URL com informações sobre o nome de usuário (protocol://userinfo@host:port/path). Anteriormente, o wget processava incorretamente o caractere ';' durante a análise de userinfo, o que resultou em uma vulnerabilidade (CVE-2024-38428) porque parte dos dados do userinfo poderia ser processada como nome do host. Por exemplo, o nome de usuário 'attackerhost;' na URL 'ftp://attackerhost;@host' levava a um acesso ao host 'attackerhost' em vez de 'host'.
- O suporte ao formato encurtado de links URL para recursos HTTP e FTP (sem a indicação explícita do protocolo, como 'wget username:password@myserver'), que anteriormente foi declarado obsoleto e resultou na vulnerabilidade CVE-2024-10524, foi descontinuado. Detalhes da vulnerabilidade ainda não foram divulgados, mas aparentemente é uma das variantes do problema mencionado anteriormente, CVE-2024-38428.
- A leitura de arquivos e do fluxo padrão (stdin) foi alterada para o uso de modo não bloqueante. Essa mudança permite a transmissão gradual de links através do fluxo de entrada, usando o comando 'print_urls | wget -i-'. Anteriormente, o wget lia os dados disponíveis e fechava rapidamente o descritor de arquivo.
Além disso, foi lançado o utilitário para envio e recebimento de dados pela rede — curl 8.11.0, que oferece a possibilidade de configurar solicitações com parâmetros como cookie, user_agent, referer e outros cabeçalhos. cURL suporta HTTP, HTTPS, HTTP/2.0, HTTP/3, SMTP, IMAP, POP3, SSH, Telnet, FTP, LDAP, RTSP, RTMP e outros protocolos de rede. O código do projeto é distribuído sob a licença Curl (versão da licença MIT).
Entre as mudanças no curl 8.11:
- Uma vulnerabilidade (CVE-2024-9681) foi corrigida, permitindo o acesso a recursos através do protocolo http://, apesar das regras HSTS (HTTP Strict Transport Security) que exigem o uso apenas de HTTPS. O problema ocorre quando há controle sobre os subdomínios do host atacado. Por exemplo, ao solicitar o host x.example.com, o atacante pode manipular o cabeçalho HTTP «Strict-Transport-Security:» para influenciar os dados no cache HSTS para de domínio example.com.
- O suporte ao protocolo WebSocket foi declarado estável.
- Adicionada a opção de usar o modo «—create-dirs» juntamente com a opção «—dump-header».
- Suporte para certificados no formato P12 adicionado ao backend criptográfico baseado em GnuTLS.
- Ao usar o GnuTLS, foi implementado o suporte ao mecanismo Early Data, permitindo que o cliente envie dados antes da conclusão da fase de negociação da conexão TLSv1.3.
- Adicionada uma configuração para desabilitar o protocolo IPFS.
- Para GnuTLS e wolfSSL, foi adicionado suporte ao cache de sessões baseado no protocolo QUIC.
- Adicionado suporte para ativação dinâmica do suporte à extensão TLS ECH (Encrypted Client Hello), destinada a criptografar informações sobre os parâmetros das sessões TLS, como o nome de domínio solicitado.
- Adicionada a possibilidade de usar as opções «—show-headers» e «—remote-header-name» em conjunto, além da opção «—skip-existing» junto com «—parallel».
Daniel Stenberg, autor do projeto curl, apresentou uma iniciativa para manter versões LTS (Rock-solid), atualizações com correções de erros críticos e vulnerabilidades que serão publicadas por pelo menos 5 anos. A primeira versão LTS anunciada é a 8.9.x, para a qual já foi criado um release corretivo 8.9.2 alegando a correção de duas vulnerabilidades. O acesso às atualizações LTS é fornecido apenas para clientes que firmaram um contrato de suporte.
O código das versões LTS continuará a ser distribuído sob a licença Curl anterior (variante MIT), mas, mediante solicitação, será possível fornecê-lo sob uma licença comercial separada. Os recursos obtidos serão destinados à manutenção do projeto e ao financiamento dos desenvolvedores. Novas branches LTS estão planejadas para serem formadas a cada 8-24 meses. O uso da branch LTS permitirá obter uma base estável, isenta da probabilidade de ocorrerem mudanças regressivas.
Fonte: opennet.ru
