Image by Rudy and Peter Skitterians from Pixabay

Falha no FreeBSD permite RCE via anúncios de roteador IPv6

Uma vulnerabilidade crítica no FreeBSD, rastreada como CVE-2025-14558, permite execução remota de código ao processar anúncios de roteador (Router Advertisements, RA) usados no mecanismo de autoconfiguração de endereços IPv6 (SLAAC). O problema é explorável apenas por atacantes no mesmo segmento de rede, mas recebeu score CVSS 9,8 (crítico) e já tem atualizações de segurança disponibilizadas pelo projeto FreeBSD.

Como a vulnerabilidade funciona

Os programas rtsol(8) e rtsold(8), responsáveis por processar anúncios de roteador ND6 para SLAAC, não validam corretamente a opção de lista de busca de domínio (domain search list) presente nas mensagens RA. O conteúdo dessa opção é repassado “como veio” para o script resolvconf(8), que é escrito em shell e não valida nem faz o escaping adequado da entrada, permitindo que comandos de shell injetados sejam executados no sistema.

Na prática, um atacante na mesma LAN pode enviar um anúncio de roteador IPv6 contendo uma entrada de domain search maliciosa, construída para incluir comandos de shell, que acabam sendo executados com os privilégios do processo que chama resolvconf. Como mensagens RA não são roteáveis e devem ser descartadas por roteadores, o ataque não atravessa fronteiras de rede, ficando restrito ao segmento local.

Impacto e quem é afetado

O advisory FreeBSD-SA-25:12.rtsold deixa claro que todas as versões suportadas do FreeBSD que tenham rtsol(8) ou rtsold(8) em execução e aceitando RA são vulneráveis. Ferramentas como Tenable classificam o impacto como crítico (9,8/10), com vetor AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, indicando que o ataque é feito via rede, com baixa complexidade e sem necessidade de autenticação ou interação do usuário.

Hosts que não usam IPv6, ou que usam IPv6 mas não estão configurados para aceitar Router Advertisements, não são afetados por essa falha. Em FreeBSD, uma interface aceita RA se a flag “ACCEPT_RTADV” aparecer na saída de ifconfig(8) para aquela interface, o que permite aos administradores verificar rapidamente se o sistema está exposto.

Correções e como mitigar

O projeto FreeBSD já corrigiu o problema em todas as branches suportadas (13.5, 14.3 e 15.0), com patches aplicados em 16 de dezembro de 2025 e distribuídos como novas revisões de RELEASE com sufixos -p (por exemplo, 14.3-RELEASE-p7). Sistemas em RELEASE em amd64/arm64 (e i386 no 13.x) podem ser atualizados via binary patch usando freebsd-update fetch/install, enquanto ambientes que compilam do código-fonte podem aplicar o patch SA-25:12/rtsold.patch e reconstruir o mundo (buildworld/installworld).

Como não há workaround prático para quem depende de SLAAC, a recomendação é aplicar as atualizações de segurança o mais rápido possível em todos os hosts FreeBSD que aceitam RA. Em ambientes onde o uso de IPv6 não é necessário, uma mitigação adicional é desabilitar a aceitação de RA nas interfaces relevantes, reduzindo a superfície de ataque até que todos os sistemas possam ser atualizados.