Sobrefluxo de buffer no Toxcore, explorado através do envio de pacotes UDP.

No Toxcore, a implementação de referência do protocolo P2P de troca de mensagens Tox, foi identificada uma vulnerabilidade (CVE-2021-44847), que potencialmente permite a execução de código ao processar um pacote UDP especialmente formatado. Todos os usuários de aplicativos baseados no Toxcore são vulneráveis, caso o transporte UDP não esteja desativado. Para realizar o ataque, é suficiente enviar um pacote UDP conhecendo o endereço IP, a porta de rede e a chave DHT aberta da vítima (essas informações estão disponíveis publicamente no DHT, ou seja, o ataque poderia ser realizado em qualquer usuário ou nó DHT).

O problema manifestou-se nas versões do toxcore de 0.1.9 a 0.2.12 e foi corrigido na versão 0.2.13. Até o momento, apenas o projeto qTox lançou uma atualização corrigindo a vulnerabilidade. Como uma medida de contorno, pode-se desativar o uso do UDP, mantendo o suporte ao TCP.

A vulnerabilidade é causada por um estouro de buffer na função handle_request(), que ocorre devido ao cálculo incorreto do tamanho dos dados no pacote de rede. Em particular, o comprimento dos dados criptografados era determinado na macro CRYPTO_SIZE, definida como "1 + CRYPTO_PUBLIC_KEY_SIZE * 2 + CRYPTO_NONCE_SIZE", que era então usada na operação de subtração "length — CRYPTO_SIZE". Devido à falta de parênteses na macro, em vez de subtrair a soma de todos os valores, era realizada a subtração de 1 e a soma das partes restantes. Por exemplo, em vez de "length — (1 + 32 * 2 + 24)", o tamanho do buffer era calculado como "length — 1 + 32 * 2 + 24", o que resultava na sobregravação dos dados na pilha que estavam fora do limite do buffer.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster