Vulnerabilidade raiz explorável remotamente no utilitário ping incluído no FreeBSD

No FreeBSD, uma vulnerabilidade (CVE-2022-23093) foi identificada no utilitário ping incluído na distribuição básica. O problema pode levar à execução remota de código com privilégios de root ao executar ping em um host externo controlado por um invasor. Uma correção foi fornecida nas atualizações do FreeBSD 13.1-RELEASE-p5, 12.4-RC2-p2 e 12.3-RELEASE-p10. Ainda não está claro se outros sistemas BSD são afetados pela vulnerabilidade identificada (ainda não há relatos de vulnerabilidades no NetBSD, DragonFlyBSD e OpenBSD).

A vulnerabilidade é causada por um buffer overflow no código de análise de mensagens ICMP recebidas em resposta a uma solicitação de verificação. O código para enviar e receber mensagens ICMP no ping usa soquetes brutos e é executado com privilégios elevados (o utilitário vem com o sinalizador setuid root). A resposta é processada no lado do ping através da reconstrução dos cabeçalhos IP e ICMP dos pacotes recebidos do soquete bruto. Os cabeçalhos IP e ICMP selecionados são copiados em buffers por pr_pack(), sem levar em conta que cabeçalhos estendidos adicionais podem estar presentes no pacote após o cabeçalho IP.

Esses cabeçalhos são extraídos do pacote e incluídos no bloco de cabeçalho, mas não são levados em consideração no cálculo do tamanho do buffer. Se o host, em resposta a uma solicitação ICMP enviada, retornar um pacote com cabeçalhos adicionais, seu conteúdo será gravado em uma área além do limite do buffer na pilha. Como resultado, um invasor pode sobrescrever até 40 bytes de dados na pilha, permitindo potencialmente a execução de seu código. A gravidade do problema é atenuada pelo fato de que, no momento em que ocorre o erro, o processo está em estado de isolamento de chamada do sistema (modo de capacidade), o que dificulta o acesso ao restante do sistema após a exploração da vulnerabilidade. .

Fonte: opennet.ru

Adicionar um comentário