ASA-2019-00500 – Wind River VxWorks: Erro lógico de estado em TCP Urgent Pointer causado por opção malformada em TCP AO

Uma série de segmentos TCP especialmente criados, em que a última etapa é um TCP-segment com o conjunto URG-flag, pode causar overflow do buffer passado para as rotinas de socket recv(), recvfrom() ou recvmsg(). Um pré-requisito é que o sistema use sockets TCP e tenha ao menos uma porta TCP no estado listening. O impacto da vulnerabilidade é um buffer overflow de até uma TCP receive-windows (por padrão 10k-64k dependendo da versão). O buffer overflow ocorre na task que executa recv()/recvfrom()/recvmsg(). Aplicações que passam um buffer igual ou maior que uma TCP receive-window completa não são suscetíveis a esse ataque. Aplicações que passam uma variável alocada na stack como buffer são mais fáceis de explorar. O resultado mais provável é um crash na aplicação que lê do socket afetado. Na pior das hipóteses, essa vulnerabilidade pode levar a RCE (Execução Remota de Código).

ASA-2019-00499 – Wind River VxWorks: Negação de serviço (DoS) via NULL pointer dereference ao analisar IGMP

Esta vulnerabilidade requer que a TCP/IP-stack seja atribuída a um endereço multicast que a API pretendia atribuir endereços unicast ou algo com a mesma falha lógica é um pré-requisito. Esta vulnerabilidade requer que pelo menos um endereço multicast IPv4 tenha sido atribuído ao destino de maneira incorreta, ou seja, usando a API destinada à atribuição de endereços unicast. Não é possível explorar para endereços multicast adicionados com a API adequada, ou seja, setsockopt(). Um usuário pode usar o CVE-2019-12264 para atribuir incorretamente um endereço IP multicast. Um usuário na mesma LAN que o sistema de vítimas pode usar essa vulnerabilidade para causar um NULL pointer dereference, que provavelmente irá causar um crash na task tNET0.

ASA-2019-00498 – Wind River VxWorks: Negação de serviço (DoS) de conexão TCP através de opções TCP malformadas

Um pacote especialmente criado contendo opções TCP ilegais pode fazer com que a vítima não apenas ignore o segmento TCP, mas também elimine a sessão TCP. Esta vulnerabilidade afeta as sessões TCP estabelecidas. Um usuário que consiga descobrir a porta TCP e os endereços IP de origem e destino de uma sessão pode inserir segmentos TCP inválidos no fluxo de dados, fazendo com que a sessão TCP seja redefinida. Uma aplicação verá isso como uma mensagem de erro ECONNRESET ao usar o socket após esse ataque. O resultado mais provável é a falha da aplicação que recebe informação do socket afetado.

ASA-2019-00497 – Wind River VxWorks: Heap overflow ao analisar DHCP Offer/ACK no cliente DHCP ipdhcpc

Um pacote DHCP especialmente criado pode causar heap overflow no sistema VxWorks usando o DHCP. O atacante deve compartilhar a LAN com o dispositivo, pois os pacotes DHCP não são encaminhados pelos roteadores IP. Esta vulnerabilidade afeta apenas os sistemas que usam o cliente DHCP incluído. Os pacotes DHCP podem ultrapassar a rede local (LAN) por meio de retransmissões DHCP, mas ficam confinados na LAN. O cliente DHCP pode ser usado no VxWorks e no bootrom. Bootrom usando DHCP/BOOTP está vulnerável apenas durante o processo de inicialização, não após a inicialização da imagem do VxWorks. Esse defeito pode ser usado para sobrescrever a heap, o que provavelmente resulta em um posterior crash em uma tarefa que solicita memória da heap. Na pior das hipóteses, essa vulnerabilidade pode levar a RCE (Execução Remota de Código).

ASA-2019-00496 – Wind River VxWorks: Stack overflow ao analisar opções IP de pacotes IPv4

Um pacote IPv4 especialmente criado, contendo opções SSRR/LSRR com codificação inválida, pode causar stack overflow. Nenhum serviço específico além do suporte ao protocolo IPv4 é necessário. Código do usuário não é afetado, essa vulnerabilidade reside na análise da opção IPv4 e pode ser acionada por pacotes IPv4 que contêm opções inválidas. O resultado mais provável de acionar esse defeito é causar um crash na tarefa tNET0. Na pior das hipóteses, essa vulnerabilidade pode levar a RCE (Execução Remota de Código).