Vulnerabilidade crítica no libsndfile (CVE-2025-52194, CVE-2026-37555) afeta Mageia 9. Aprenda a verificar, corrigir com script automatizado e implementar mitigações alternativas como AppArmor e iptables. Guia completo para administradores Linux.
O que aconteceu? (Contexto histórico)
Em meados de 2026, foram identificadas múltiplas vulnerabilidades críticas na biblioteca libsndfile — amplamente utilizada para leitura e gravação de arquivos de áudio como AIFF, AU e WAV. As falhas, registradas como CVE-2025-52194, CVE-2025-56226 e CVE-2026-37555, afetam a versão 1.2.2 e versões anteriores.
O que torna isso grave:
CVE-2025-52194: estouro de buffer na função ircam_read_header ao processar arquivos IRCAM malformados, podendo levar à execução arbitrária de código.
CVE-2026-37555: estouro de buffer no codec IMA ADPCM. A multiplicação samplesperblock * blocks ultrapassa INT_MAX (ex.: 50000×50000 = 2.500.000.000, que estoura para -1.794.967.296), causando contagem incorreta de frames e corrupção de heap.
CVE-2025-56226: vazamento de memória na função mpeg_l3_encoder_init().
O Mageia lançou a atualização de segurança MGASA-2026-0215, corrigindo o problema nos pacotes libsndfile-1.2.0-3.3.mga9.
Como verificar se você está vulnerável
Execute estes comandos no terminal do seu Mageia para descobrir a versão instalada da libsndfile:
# Verifica a versão do pacote instalado rpm -q libsndfile # Ou, para mais detalhes urpmq --installed libsndfile
Se a versão retornada for inferior a 1.2.0-3.3.mga9, seu sistema está vulnerável.
Para verificar se algum processo está utilizando a biblioteca no momento:
# Lista processos que usam libsndfile lsof | grep libsndfile | awk '{print $1, $2}' | sort -u # Ou, de forma mais específica sudo lsof -c /.*/ | grep libsndfile
Salve o script abaixo como fix-libsndfile.sh e execute com sudo bash fix-libsndfile.sh:
#!/bin/bash # fix-libsndfile.sh - Aplica a correção de segurança para libsndfile no Mageia # Compatível com Mageia 8 e 9 set -e echo "=== libsndfile Security Fix ===" echo "Verificando versão atual..." CURRENT_VERSION=$(rpm -q libsndfile --queryformat "%{VERSION}-%{RELEASE}" 2>/dev/null || echo "não instalado") if [ "$CURRENT_VERSION" = "não instalado" ]; then echo "⚠️ libsndfile não está instalado neste sistema." echo " Considere instalar apenas se necessário: urpmi libsndfile" exit 0 fi echo "Versão atual: $CURRENT_VERSION" # Versão corrigida para Mageia 9 FIXED_VERSION="1.2.0-3.3.mga9" if [ "$CURRENT_VERSION" = "$FIXED_VERSION" ]; then echo "✅ Sistema já está atualizado com a versão corrigida." exit 0 fi echo "⚠️ Sistema VULNERÁVEL. Aplicando correção..." # Atualiza os repositórios echo "Atualizando cache de repositórios..." urpmi.update -a # Aplica a atualização echo "Instalando atualização de segurança..." urpmi --auto-update libsndfile # Verifica se foi bem-sucedido NEW_VERSION=$(rpm -q libsndfile --queryformat "%{VERSION}-%{RELEASE}") if [ "$NEW_VERSION" = "$FIXED_VERSION" ]; then echo "✅ Correção aplicada com sucesso! Versão: $NEW_VERSION" else echo "❌ Falha ao aplicar a correção. Versão atual: $NEW_VERSION" echo " Tente manualmente: urpmi libsndfile" exit 1 fi echo "=== Fim do script ==="
📗 Recomendação de Leitura
Segurança em servidores Linux: Ataque e Defesa (anúncio) -> https://amzn.to/4fHoFXG
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.
Mitigação alternativa caso não possa atualizar agora
Restrição com AppArmor (recomendado)
# Instale o AppArmor se não estiver presente urpmi apparmor apparmor-utils # Crie um perfil para o aplicativo que processa áudio (ex.: um player) sudo aa-genprof /usr/bin/seu-aplicativo
/usr/bin/seu-aplicativo {
# ... regras existentes ...
# Restringe acesso a arquivos IRCAM e WAV malformados
deny /**/*.ircam r,
deny /**/*.wav r,
# Permite apenas diretórios confiáveis
/home/usuario/Musica/** r,
}
Bloqueio com iptables (para servidores)
# Bloqueia conexões de entrada de IPs não confiáveis nas portas comuns sudo iptables -A INPUT -s 0.0.0.0/0 -p tcp --dport 80 -m recent --name badguys --set -j DROP sudo iptables -A INPUT -m recent --name badguys --update -j DROP # Limita taxa de conexões para evitar ataques de negação de serviço sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 25/minute --limit-burst 100 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j DROP
Proxy de validação de arquivos
Para ambientes críticos, implemente um proxy que valide arquivos de áudio antes do processamento:
# Exemplo: script de validação usando 'file' e 'sox' validate_audio() { local file="$1" # Verifica se é um arquivo de áudio válido if ! file "$file" | grep -q "audio"; then echo "Arquivo inválido: $file" return 1 fi # Tenta converter com sox para validar integridade if ! sox "$file" /dev/null 2>/dev/null; then echo "Arquivo corrompido: $file" return 1 fi return 0 }

Nenhum comentário:
Postar um comentário