Eles detectaram uma vulnerabilidade no PF que permite contornar regras de bloqueio de IPv6

vulnerabilidade

Se exploradas, essas falhas podem permitir que invasores obtenham acesso não autorizado a informações confidenciais ou geralmente causem problemas

A notícia foi divulgada pelo NetSecurityLab, na qual menciona que identificaram uma vulnerabilidade (listado em CVE-2023-4809) no código de filtro de pacotes “pf” do FreeBSD.

É mencionado que a vulnerabilidade pode ser explorado para permitir contornar regras de bloqueio IPv6 manipulação de pacotes IPv6 fragmentados. O problema ocorre ao usar pf para filtrar o tráfego IPv6 com o "esfregar fragmento remontar" habilitado.

PF é desenvolvido como parte do sistema base OpenBSD. Apesar disso, foi portado com sucesso para outros sistemas, como o FreeBSD, que gradualmente o adotou, primeiro como um pacote e depois se tornou um dos três subsistemas de filtragem oferecidos pelo kernel.

PF é um filtro de pacotes originalmente escrito para OpenBSD. O PF pode remontar pacotes IPv6 fragmentados para aplicar regras ao pacote remontado. Isso permite que o PF filtre informações de protocolo da camada superior (por exemplo, TCP, UDP).

Sobre vulnerabilidade

É mencionado que a vulnerabilidade é devido a um bug presente no driver de bloco "atômico", um tipo avançado de fragmentação em que apenas o primeiro e único fragmento forma uma transmissão fragmentada (um pacote é fragmentado usando apenas um fragmento).

Pacotes IPv6 em modo de fragmentação “atômico” que especificavam mais de um cabeçalho de extensão de fragmento não foram descartados como inválidos, mas foram processados ​​como fragmentos separados. Consequentemente, as regras destinadas a serem aplicadas à embalagem final remontada a partir de fragmentos não funcionaram.

Um invasor pode ignorar as regras de PF enviando pacotes IPv6 especialmente criados que, contrariamente aos requisitos das especificações, contêm vários cabeçalhos estendidos com dados fragmentados.

Na parte de a implementação original do OpenBSD do PF, é mencionado que isso não é afetado pela vulnerabilidade, já que em 2013, durante a implementação de fragmentos atômicos, foi adicionada uma verificação ao código de análise de cabeçalho no PF que bloqueia pacotes IPv6 com vários cabeçalhos específicos de fragmentos. Uma função que contém a verificação necessária não foi portada para o FreeBSD, então a implementação do PF no sistema é afetada.

Nossos testes mostram que o FreeBSD lida com esses fragmentos atômicos reconstruindo o pacote original (graças ao processo de depuração), mas não aplica nenhuma regra que se aplique às camadas quatro e superiores (por exemplo, a penúltima regra na configuração acima). Ao fazer isso, o fragmento corresponde a outras regras na configuração do firewall e pode passar. Além disso, o processo de depuração corrigiu o pacote, portanto agora qualquer sistema operacional atrás do firewall aceita o pacote.

Verificamos que conseguimos estabelecer comunicação bidirecional completa entre o invasor e a vítima por trás do firewall do FreeBSD, bem como tráfego UDP e tráfego ICMPv6 entre eles.

Por outro lado, e não menos importante, vale ressaltar e aproveitar o espaço que estamos falando de uma vulnerabilidade, que a correção também foi feita na pilha wireless do FreeBSD de uma vulnerabilidade (CVE-2022-47522), identificado em março e conhecido pelo codinome MacStealer. Esta vulnerabilidade afeta o mecanismo de enfileiramento para buffer dos frames antes de enviá-los aos destinatários, bem como falhas no gerenciamento do contexto de segurança dos frames enfileirados.

A vulnerabilidade pode ser usada para interceptar o tráfego de outros usuários, contornando o isolamento MAC do cliente, mesmo que os clientes não tenham permissão para se comunicar entre si (por exemplo, para atacar usuários em redes corporativas onde os usuários estão separados uns dos outros). sim ou onde os protocolos WPA2 e WPA3 são usados ​​no modo de isolamento do cliente).

Por fim, vale ressaltar que a vulnerabilidade foi corrigida em forma de patch nas atualizações do FreeBSD 13.2-p3 e 12.4-p5. Sim está interessado em saber mais sobre isso, você pode verificar os detalhes no link a seguir