Aprenda a corrigir a vulnerabilidade CVE-2026-45287 no Alertmanager do Fedora 43 com comandos práticos, script de automação e mitigação alternativa. Proteja seu monitoramento contra vazamento de descritores de arquivo e evite negação de serviço. Inclui dicas de segurança e recomendações de leitura.
Contexto (Apenas para Referência Histórica)
Em meados de 2026, foi identificada uma vulnerabilidade (CVE-2026-45287) no OpenTelemetry-Go, biblioteca utilizada pelo Prometheus Alertmanager.
O problema afetava as versões anteriores à 0.0.17 do pacote go.opentelemetry.io/otel/schema, onde a função ParseFile abria arquivos de esquema sem fechá-los adequadamente.
Cada chamada bem-sucedida consumia um descritor de arquivo do processo, e em aplicações de longa duração que processavam esquemas repetidamente, isso podia esgotar o limite de descritores do sistema, causando negação de serviço (DoS).
A correção foi disponibilizada na versão 0.33.0 do Alertmanager para o Fedora 43. O que importa não é a data, mas como garantir que seu sistema está seguro agora e no futuro.
É isso que você vai aprender aqui.
Como Verificar se Você Está Vulnerável
Antes de aplicar qualquer correção, verifique a versão do Alertmanager em seu sistema Fedora:
# Verifica a versão instalada do Alertmanager dnf list installed alertmanager # Ou, se preferir, veja detalhes do pacote rpm -qi alertmanager | grep Version
Interpretação:
- Se a versão for anterior à 0.33.0, seu sistema está vulnerável ao CVE-2026-45287.
- Se for 0.33.0 ou superior, você já está protegido.
Para verificar se há vazamento de descritores em execução, monitore o uso de descritores do processo do Alertmanager:
# Descubra o PID do Alertmanager pgrep -f alertmanager # Substitua <PID> pelo número encontrado e veja o consumo de descritores ls -la /proc/<PID>/fd | wc -l
Se o número de descritores estiver crescendo continuamente ao longo do tempo (especialmente após recarregamentos de configuração), é um forte indício de que você está enfrentando o vazamento.
Script de Automação para Aplicar a Correção
Salve o script abaixo como fix-alertmanager.sh e execute com privilégios de root:
#!/bin/bash # fix-alertmanager.sh - Aplica a correção de segurança para o CVE-2026-45287 no Fedora # Compatível com Fedora 43 e versões posteriores set -e echo "=== Correção de Segurança - Alertmanager (CVE-2026-45287) ===" # 1. Verifica versão atual CURRENT_VERSION=$(dnf list installed alertmanager 2>/dev/null | grep alertmanager | awk '{print $2}' | cut -d'-' -f1) echo "Versão atual: $CURRENT_VERSION" if [[ "$CURRENT_VERSION" == "0.33.0" ]] || [[ "$CURRENT_VERSION" > "0.33.0" ]]; then echo "✅ Sistema já está na versão segura (0.33.0 ou superior). Nada a fazer." exit 0 fi echo "⚠️ Versão vulnerável detectada. Aplicando atualização..." # 2. Faz backup da configuração atual (se existir) if [ -f /etc/alertmanager/alertmanager.yml ]; then BACKUP_DIR="/root/alertmanager-backup-$(date +%Y%m%d)" mkdir -p "$BACKUP_DIR" cp -r /etc/alertmanager/* "$BACKUP_DIR/" echo "✅ Backup da configuração salvo em $BACKUP_DIR" fi # 3. Aplica a atualização via DNF echo "📦 Instalando atualização..." dnf upgrade --advisory FEDORA-2026-1ad4561f49 -y # 4. Verifica se a atualização foi bem-sucedida NEW_VERSION=$(dnf list installed alertmanager 2>/dev/null | grep alertmanager | awk '{print $2}' | cut -d'-' -f1) if [[ "$NEW_VERSION" == "0.33.0" ]] || [[ "$NEW_VERSION" > "0.33.0" ]]; then echo "✅ Atualização concluída com sucesso para a versão $NEW_VERSION" else echo "❌ Falha na atualização. Verifique manualmente com: dnf update alertmanager" exit 1 fi # 5. Reinicia o serviço echo "🔄 Reiniciando o Alertmanager..." systemctl restart alertmanager # 6. Verifica o status do serviço if systemctl is-active --quiet alertmanager; then echo "✅ Serviço Alertmanager rodando normalmente." else echo "⚠️ Serviço não está ativo. Verifique com: systemctl status alertmanager" fi echo "=== Correção aplicada com sucesso! ==="
Para executar:
chmod +x fix-alertmanager.sh sudo ./fix-alertmanager.sh
📗 Recomendação de Leitura
Segurança em servidores Linux: Ataque e Defesa (anúncio) -> https://link.amazon/B0hlDkNqk
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 Posso Atualizar Agora)
Se você não pode reiniciar o Alertmanager ou aplicar a atualização imediatamente, use estas medidas temporárias:
1. Aumentar o Limite de Descritores de Arquivo do Sistema
Isso não corrige o vazamento, mas dá mais tempo até que o limite seja atingido:
# Verifica o limite atual ulimit -n # Aumenta temporariamente para 65535 (para a sessão atual) ulimit -n 65535 # Para tornar permanente, edite /etc/security/limits.conf e adicione: # alertmanager soft nofile 65535 # alertmanager hard nofile 65535
2. Reiniciar o Alertmanager Periodicamente (Cron Job)
Uma rotação programada do serviço libera os descritores vazados:
# Agenda uma reinicialização semanal (aos domingos às 3h) echo "0 3 * * 0 root systemctl restart alertmanager" >> /etc/crontab
3. Monitoramento Proativo com Script
Monitore o consumo de descritores e reinicie automaticamente se ultrapassar um limite seguro:
#!/bin/bash # monitor-alertmanager-fd.sh MAX_FD=5000 PID=$(pgrep -f alertmanager) if [ -n "$PID" ]; then FD_COUNT=$(ls -la /proc/$PID/fd 2>/dev/null | wc -l) if [ $FD_COUNT -gt $MAX_FD ]; then echo "⚠️ Descritores excedendo $MAX_FD ($FD_COUNT). Reiniciando Alertmanager..." systemctl restart alertmanager fi fi
Conclusão
O CVE-2026-45287 é um lembrete de que mesmo bibliotecas amplamente utilizadas podem ter vazamentos de recursos sutis mas perigosos. A correção está disponível e é simples de aplicar: mantenha seu Alertmanager atualizado para a versão 0.33.0 ou superior.
Use o script de automação fornecido para aplicar a correção de forma rápida e segura, e, se não puder atualizar agora, implemente as mitigações alternativas para ganhar tempo.
Lembre-se: em sistemas de monitoramento, a estabilidade é tão crítica quanto a coleta de métricas. Um Alertmanager que cai por falta de descritores pode significar alertas perdidos — e isso ninguém quer.

Nenhum comentário:
Postar um comentário