ASA-2019-00501 – Wind River VxWorks: Erro lógico de estado em TCP Urgent Pointer durante connect() em um host remoto

Uma resposta criada para tentativas de conexão, na qual também são definidas as flags FIN e URG, é enviada como resposta. Isso pode colocar a vítima em um estado inconsistente, o que torna possível enviar ainda outro segmento que aciona um buffer overflow. Um pré-requisito é que o sistema use sockets TCP e um usuário mal-intencionado possa acionar o alvo para estabelecer uma nova conexão TCP da qual o atacante rouba o tráfego. O impacto da vulnerabilidade é um buffer overflow de até uma TCP receive-window (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 os mais fáceis de explorar. O resultado mais provável é um crash na aplicação na leitura do socket afetado. Na pior das hipóteses, essa vulnerabilidade pode levar a RCE (Execução Remota de Código).