O GNU Wget2, a nova geração do popular utilitário de download em linha de comando, chegou à versão 2.3.0. A atualização, anunciada no repositório oficial do projeto, traz um conjunto robusto de correções que aproximam o comportamento da ferramenta ao do Wget 1.x original, além de implementar melhorias cruciais em segurança, gerenciamento de certificados TLS e prevenção contra vulnerabilidades de path traversal.
Desenvolvido para ser mais rápido e eficiente que seu antecessor — com suporte nativo a HTTP/2, compressão avançada e downloads multithread —, o Wget2 ainda passa por ajustes finos para garantir que scripts legados funcionem sem quebras inesperadas. A versão 2.3.0 foca exatamente nesse polimento.
O que isso muda na prática

Para administradores de sistemas e desenvolvedores que utilizam o Wget em automações, a nova versão reduz o atrito na migração do Wget 1.x para o Wget2. Comandos clássicos, como o prefixo de diretório e filtros de aceitação/rejeição de arquivos, agora se comportam da maneira esperada. Além disso, o download de arquivos via web torna-se mais seguro, já que a ferramenta agora sanitiza rigorosamente nomes de arquivos sugeridos por servidores, evitando que downloads maliciosos sobrescrevam arquivos críticos do sistema.
Maior paridade com o Wget 1.x
Um dos grandes desafios de reescrever uma ferramenta clássica é manter a compatibilidade com décadas de scripts existentes. O Wget2 2.3.0 resolve várias discrepâncias reportadas por usuários:
- Prefixo de diretórios: A opção --directory-prefix (ou -P) foi corrigida para atuar de forma idêntica ao Wget1.
- Filtros de arquivos: A compatibilidade das opções --accept e --reject foi aprimorada, garantindo que o filtro de extensões e padrões funcione como no projeto original.
- Tratamento de URLs: O processo de remoção de escapes (unescaping) de URLs foi ajustado para os padrões do Wget1. Além disso, o utilitário deixou de remover o escape de URLs em cabeçalhos Location, prevenindo redirecionamentos quebrados.
- Combinações de flags: Um problema envolvendo o uso simultâneo de --page-requisites, --no-parent, --level 0 e --mirror foi solucionado.
Segurança, TLS e sanitização de caminhos
A versão 2.3.0 reforça as defesas do Wget2 contra servidores maliciosos ou mal configurados. O destaque fica para a mitigação de falhas de path traversal (travessia de diretório), uma técnica onde o servidor tenta forçar o cliente a salvar um arquivo fora do diretório de destino pretendido.
- Content-Disposition seguro: O Wget2 agora previne a travessia de caminhos ao processar o cabeçalho HTTP Content-Disposition. O nome do arquivo sugerido pelo servidor é sanitizado, e a ferramenta passa a utilizar o basename como nome final.
- Metalink no Windows: Caminhos no Windows também receberam sanitização específica durante o uso de Metalink, prevenindo vulnerabilidades de travessia na plataforma da Microsoft.
- Gerenciamento de Cookies: O utilitário agora aceita cookies seguros exclusivamente via conexões HTTPS e corrige um possível estouro de limite de inteiros (integer overflow) durante o parsing.
- Criptografia: O suporte a TLS foi atualizado em diferentes bibliotecas. O OpenSSL ganhou suporte a autenticação pós-handshake (post handshake auth). Para usuários do GnuTLS, a versão mínima exigida agora é a 3.6.5, com aceitação de configurações do sistema. Já o WolfSSL recebeu melhorias na checagem OCSP e verificação de domínio. Os certificados SSL/TLS agora também têm seu propósito (purpose) validado rigorosamente.
Melhorias no comportamento HTTP e parsing
No lado do processamento de dados da web, o Wget2 2.3.0 expande sua capacidade de entender páginas modernas e lidar com protocolos recentes:
- HTTP/2: Foi implementada a capacidade de pular (skip) respostas de status 1xx, adequando-se melhor ao fluxo do protocolo.
- RFC 9110: O cabeçalho Content-Length: 0 foi adicionado às requisições POST, PUT e PATCH, seguindo os padrões web mais recentes.
- Parsing de HTML e CSS: O Wget2 agora consegue converter arquivos CSS ao usar --convert-links. No HTML, a ferramenta passou a suportar iframe srcdoc e a ler adequadamente os atributos data-src e data-srcset, úteis para espelhar páginas que usam carregamento preguiçoso (lazy loading) de imagens.
- Prevenção de Stack Overflow: Um problema de estouro de pilha durante o parsing recursivo de arquivos locais foi corrigido, e a profundidade máxima de recursão no processamento de XML foi limitada a 1024.
O código-fonte do Wget2 2.3.0 já está disponível para download no repositório oficial do projeto no GitLab. A chegada aos repositórios das principais distribuições Linux deve ocorrer gradualmente nas próximas semanas.