Descubra como identificar e corrigir a vulnerabilidade de geração de salts fracos no Ubuntu (CVE-2026-47372). Guia completo com comandos, script de automação, mitigação alternativa e dicas para fortalecer a segurança de hashes. Aprenda a proteger seus sistemas agora mesmo.
Entendendo o Problema
Em junho de 2026, foi divulgada uma vulnerabilidade (CVE-2026-47372) na biblioteca libcrypt-saltedhash-perl, que afeta várias versões do Ubuntu – incluindo 16.04, 18.04, 20.04, 22.04, 24.04, 25.10 e 26.04 LTS.
O problema está no uso da função rand do Perl para gerar salts de hashes, uma função não criptograficamente segura e, portanto, previsível.
Isso significa que um invasor pode prever os salts gerados, o que enfraquece drasticamente a proteção de senhas armazenadas, facilita ataques de dicionário e torna viável a criação de rainbow tables sob medida.
A boa notícia é que já existem atualizações disponíveis. Este guia mostra como verificar se você está vulnerável, corrigir o problema e, se necessário, adotar mitigações temporárias.
2. Como Verificar se Você Está Vulnerável
Execute os comandos abaixo no terminal do Ubuntu para determinar se sua versão do pacote requer correção.
2.1 Verificar a versão instalada
# Exibe a versão exata do pacote dpkg -l | grep libcrypt-saltedhash-perl
apt policy libcrypt-saltedhash-perl
2.4 Teste rápido de previsibilidade do salt (opcional)
perl -MCrypt::SaltedHash -E 'say Crypt::SaltedHash->new->generate("test")'
3. Script de Automação para Aplicar a Correção
O script abaixo atualiza automaticamente o pacote vulnerável e valida se a correção foi aplicada corretamente. Ele é compatível com todas as versões do Ubuntu afetadas.
fix_crypt_saltedhash.sh
#!/bin/bash # Script de correção para CVE-2026-47372 # Compatível com Ubuntu 16.04+, incluindo versões com Ubuntu Pro set -e # Interrompe o script em caso de erro echo "[*] Verificando versão atual do libcrypt-saltedhash-perl..." current_version=$(dpkg -l | grep libcrypt-saltedhash-perl | awk '{print $3}') echo " Versão atual: $current_version" echo "[*] Atualizando lista de pacotes..." sudo apt update echo "[*] Aplicando correção para o pacote vulnerável..." sudo apt install --only-upgrade libcrypt-saltedhash-perl -y new_version=$(dpkg -l | grep libcrypt-saltedhash-perl | awk '{print $3}') echo "[*] Versão após atualização: $new_version" # Validação da correção if [[ "$new_version" > "$current_version" ]]; then echo "[✓] Pacote atualizado com sucesso. Seu sistema está protegido contra CVE-2026-47372." else echo "[!] ATENÇÃO: O pacote não foi atualizado. Verifique se o Ubuntu Pro está habilitado para versões LTS antigas." echo " Para versões 16.04, 18.04, 20.04, 22.04, 24.04 e 26.04, é necessário o Ubuntu Pro (gratuito para até 5 máquinas)." fi echo "[*] Teste rápido de geração de salt..." perl -MCrypt::SaltedHash -E 'say Crypt::SaltedHash->new->generate("test")' echo "[*] Correção concluída."
1. Salve o conteúdo acima em um arquivo (ex.: fix_crypt_saltedhash.sh).
2. Torne o script executável:
chmod +x fix_crypt_saltedhash.sh
3. Execute com privilégios de superusuário:
sudo ./fix_crypt_saltedhash.sh
Observação importante: Para versões do Ubuntu que já saíram do suporte padrão (16.04, 18.04, 20.04, 22.04 e 24.04 – além de 26.04 LTS, que requer assinatura do Ubuntu Pro para receber a correção), a atualização está disponível apenas para assinantes do Ubuntu Pro, que é gratuito para até 5 máquinas.
📗 Recomendação de Leitura
Segurança em servidores Linux: Ataque e Defesa (anúncio) -> https://amzn.to/4e12PgB
Se você prefere estudar em português e quer aprender a "pensar como um hacker" para se antecipar a invasões, essa é a pedida! O livro ensina a usar as ferramentas prediletas dos invasores (como Nmap e Netcat) a seu favor, blindando seus sistemas.
Eu ganho uma comissão quando você faz uma compra.
4. Mitigação Alternativa Caso Não Possa Atualizar Agora
Se por algum motivo você não puder aplicar a atualização imediatamente (ex.: fila de mudanças, ausência do Ubuntu Pro, dependências conflitantes), as seguintes medidas podem reduzir o risco até que a correção seja aplicada.
4.1 Restringir Acesso via iptables
Como a vulnerabilidade afeta principalmente sistemas que expõem serviços de autenticação (SSH, web com login, APIs), uma medida paliativa é bloquear o acesso externo a esses serviços, permitindo apenas IPs confiáveis.
Exemplo: permitir SSH apenas para a rede local (192.168.1.0/24) e bloquear qualquer outro acesso:
# Limpar regras existentes na INPUT sudo iptables -P INPUT DROP sudo iptables -A INPUT -i lo -j ACCEPT sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # Permitir SSH apenas da rede local sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT # (Opcional) Bloquear tentativas de autenticação em web apps sudo iptables -A INPUT -p tcp --dport 80 -j DROP sudo iptables -A INPUT -p tcp --dport 443 -j DROP
Nota: Essa medida não corrige o problema, apenas reduz a superfície de exposição. A correção definitiva continua sendo a atualização do pacote.
4.2 Utilizar AppArmor para Restringir o Interpretador Perl
Crie um perfil AppArmor restritivo para o Perl, limitando quais scripts podem acessar o módulo vulnerável.
Exemplo de perfil /etc/apparmor.d/usr.bin.perl (parcial):
/usr/bin/perl {
# Permissões básicas
/usr/bin/perl mr,
/usr/lib/** rm,
/etc/ld.so.cache r,
/dev/urandom r,
/dev/random r,
# Bloqueia scripts não autorizados de usar Crypt::SaltedHash
deny /path/to/scripts/** w,
}
Em seguida, ative o perfil:
sudo apparmor_parser -r /etc/apparmor.d/usr.bin.perlImportante: Essa é uma solução complexa e deve ser aplicada apenas por administradores experientes. Não substitui a atualização.
4.3 Substituir a Geração de Salt por uma Fonte Segura
Se você mantém scripts Perl que usam Crypt::SaltedHash, pode modificar o código para usar Bytes::Random::Secure (ou Math::Random::Secure) para gerar salts criptograficamente seguros.
Exemplo de substituição:
# Antes (vulnerável) my $hashed = Crypt::SaltedHash->new->generate($password); # Depois (seguro, usando Bytes::Random::Secure) use Bytes::Random::Secure; my $rng = Bytes::Random::Secure->new; my $salt = $rng->bytes(8); # 8 bytes = 64 bits de entropia
Essa mudança exige a instalação do módulo alternativo:
sudo apt install libbytes-random-secure-perl
Conclusão
A vulnerabilidade CVE-2026-47372 nos lembra de um princípio básico de segurança: nunca confie em geradores de números aleatórios não criptográficos para proteção de senhas. Felizmente, a correção é simples e está disponível para todas as versões do Ubuntu (algumas exigem Ubuntu Pro, que é gratuito para até 5 máquinas).
- Resumo das ações recomendadas:
- Verifique sua versão do libcrypt-saltedhash-perl.
- Atualize usando o script fornecido ou via apt upgrade.
- Monitore logs e atividades suspeitas.
Adote boas práticas de segurança, inclusive com leituras complementares como o livro recomendado.
Proteger hashes é proteger o coração da autenticação do seu sistema. Não deixe para depois.

Nenhum comentário:
Postar um comentário