A vulnerabilidade CVE-2026-32282 no yggdrasil-worker-package-manager permite que Root.Chmod siga symlinks fora da raiz em Rocky Linux 10. Aprenda a verificar, corrigir com scripts automatizados e aplicar mitigação alternativa mesmo sem atualização imediata. Guia prático para administradores de sistemas.
O que é essa vulnerabilidade e por que você precisa se preocupar
O yggdrasil-worker-package-manager é um componente que faz parte do ecossistema Yggdrasil — um daemon que se conecta a um broker MQTT e roteia dados para processos "workers" especializados.
Este worker específico é responsável por instalar e remover pacotes, gerenciar repositórios e detectar o sistema operacional para escolher o gerenciador de pacotes adequado.
A vulnerabilidade CVE-2026-32282 (gravidade moderada, CVSS 6.4) afeta a função Root.Chmod da linguagem Go, que pode seguir symlinks para fora do diretório raiz.
Em termos práticos: um processo com privilégios elevados pode, acidentalmente ou maliciosamente, alterar permissões de arquivos fora do chroot, comprometendo a integridade do sistema.
Quem está em risco: sistemas Rocky Linux 10 com o pacote yggdrasil-worker-package-manager em versões anteriores à 0.2.3-7.el10_2.
Como verificar se você está vulnerável
1. Verifique a versão do pacote instalado
rpm -q yggdrasil-worker-package-manager
Se a versão retornada for anterior a 0.2.3-7.el10_2, seu sistema está vulnerável.
2. Verifique se o serviço está em execução
systemctl status yggdrasil
3. Consulte o advisory oficial
dnf updateinfo info RLSA-2026:25999
4. Verificação rápida com script
#!/bin/bash # check-yggdrasil-vuln.sh PKG="yggdrasil-worker-package-manager" FIXED="0.2.3-7.el10_2" INSTALLED=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" $PKG 2>/dev/null) if [ -z "$INSTALLED" ]; then echo "Pacote $PKG não está instalado." exit 0 fi if [ "$INSTALLED" != "$FIXED" ] && [ "$INSTALLED" \< "$FIXED" ]; then echo "VULNERÁVEL: versão $INSTALLED (fix disponível em $FIXED)" exit 1 else echo "SEGURO: versão $INSTALLED" exit 0 fi
Script de automação para aplicar a correção
Este script atualiza o pacote e reinicia o serviço de forma segura:
#!/bin/bash # fix-yggdrasil-cve-2026-32282.sh # Rocky Linux 10 - Correção para CVE-2026-32282 set -e PKG="yggdrasil-worker-package-manager" FIXED="0.2.3-7.el10_2" LOG="/var/log/yggdrasil-update.log" BACKUP_DIR="/root/yggdrasil-backup-$(date +%Y%m%d)" echo "[$(date)] Iniciando correção CVE-2026-32282" | tee -a $LOG # Verifica se é Rocky Linux 10 if ! grep -q "Rocky Linux release 10" /etc/rocky-release 2>/dev/null; then echo "ERRO: Este script é para Rocky Linux 10" | tee -a $LOG exit 1 fi # Faz backup da configuração atual mkdir -p $BACKUP_DIR cp -r /etc/yggdrasil* $BACKUP_DIR/ 2>/dev/null || true echo "Backup salvo em $BACKUP_DIR" | tee -a $LOG # Verifica versão atual CURRENT=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" $PKG 2>/dev/null) echo "Versão atual: $CURRENT" | tee -a $LOG if [ "$CURRENT" = "$FIXED" ]; then echo "Sistema já está corrigido." | tee -a $LOG exit 0 fi # Atualiza o pacote echo "Aplicando atualização..." | tee -a $LOG dnf update -y $PKG 2>&1 | tee -a $LOG # Verifica se a atualização foi bem-sucedida NEW_VERSION=$(rpm -q --queryformat "%{VERSION}-%{RELEASE}" $PKG 2>/dev/null) if [ "$NEW_VERSION" = "$FIXED" ] || [ "$NEW_VERSION" \> "$FIXED" ]; then echo "✓ Atualização aplicada com sucesso: $NEW_VERSION" | tee -a $LOG else echo "✗ Falha na atualização. Versão atual: $NEW_VERSION" | tee -a $LOG exit 1 fi # Reinicia o serviço systemctl restart yggdrasil 2>/dev/null || echo "Serviço yggdrasil não encontrado ou não reiniciado" | tee -a $LOG systemctl status yggdrasil --no-pager 2>/dev/null | head -5 | tee -a $LOG echo "[$(date)] Correção concluída" | tee -a $LOG
Como executar:
chmod +x fix-yggdrasil-cve-2026-32282.sh sudo ./fix-yggdrasil-cve-2026-32282.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 possa atualizar agora
Se você não puder aplicar a atualização imediatamente, estas medidas reduzem o risco:
1. Restringir permissões do serviço
# Impedir que o yggdrasil seja executado como root sudo systemctl edit yggdrasil
Adicione ao arquivo:
[Service] User=yggdrasil Group=yggdrasil PrivateTmp=yes NoNewPrivileges=yes ProtectSystem=full
2. Bloquear acesso com iptables (se o serviço escutar rede)
# Verificar portas em uso sudo ss -tulpn | grep yggdrasil # Bloquear acesso externo (exemplo para porta 1883 - MQTT) sudo iptables -A INPUT -p tcp --dport 1883 -s 127.0.0.1 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 1883 -j DROP
3. Monitorar logs e alertas
# Monitorar tentativas de acesso suspeito sudo journalctl -u yggdrasil -f
4. Desabilitar temporariamente (se o serviço não for crítico)
sudo systemctl stop yggdrasil sudo systemctl disable yggdrasil
Conclusão
A vulnerabilidade CVE-2026-32282 no yggdrasil-worker-package-manager é um lembrete de que mesmo componentes com gravidade "moderada" merecem atenção.
O problema — Root.Chmod seguir symlinks fora da raiz — pode parecer sutil, mas em sistemas críticos pode abrir brechas para escalonamento de privilégios.
Resumo das ações:
Mantenha seus sistemas atualizados e, sempre que possível, automatize verificações de segurança.
Um script de monitoramento pode salvar seu ambiente antes que um atacante explore a falha.

Nenhum comentário:
Postar um comentário