ASA-2019-00534 – Exim: Buffer overflow ao enviar um SNI que termina em uma sequência de backslash-null durante handshake TLS inicial

O processo SMTP Delivery em todas as versões, inclusive o Exim 4.92.1, inclui um buffer overflow. Na configuração runtime padrão, esta vulnerabilidade é explorável com dados SNI (Server Name Indication) criados durante uma negociação TLS. Em outras configurações, é explorável com um certificado TLS criado pelo cliente. Um usuário local ou remotamente pode executar códigos com privilégios root. A vulnerabilidade é explorável enviando um SNI que termina em uma seqüência de backslash-null durante o handshake TLS inicial.

ASA-2019-00510 – FreeBSD bhyve: Validação insuficiente de dados fornecidos por guest (e1000 device)

Os adaptadores de rede e1000 permitem uma variedade de modificações em um pacote Ethernet quando este está sendo transmitido. Isso inclui a inserção de checksums IP e TCP, a inserção de um cabeçalho Ethernet VLAN e TCP segmentation offload (“TSO”). O dispositivo e1000 usa um buffer na stack para gerar o cabeçalho de pacote modificado ao simular essas modificações nos pacotes transmitidos. Quando o TCP segmentation offload é solicitado para um pacote transmitido, o e1000 usa um valor fornecido pelo guest para determinar o tamanho do buffer na stack sem validação. A geração de cabeçalho subseqüente pode estourar o buffer de tamanho incorreto ou acesso ao ponteiro composto por dados aleatórios na stack. Um guest bhyve que se comporte erroneamente pode sobrescrever memória no processo bhyve sendo executado no host.

ASA-2019-00506 – Wind River VxWorks: TCP Urgent Pointer = 0 conduz a integer underflow

Um segmento TCP criado com o conjunto URG-flag pode causar overflow do buffer passado para as rotinas de socket recv(), recvfrom() ou recvmsg(). Tendo como pré-requisito que o sistema use sockets TCP, um atacante pode sequestrar uma sessão TCP existente e injetar segmentos TCP inválidos ou estabelecer uma nova sessão TCP em qualquer porta que o sistema vítima esteja escutando. O impacto da vulnerabilidade é um buffer overflow de até uma TCP window (por padrão 10k-64k dependendo da versão). O buffer overflow ocorre na task executando recv()/recvfrom()/recvmsg(). Aplicações que passam um buffer igual ou maior que uma TCP window completa não são suscetíveis a esse ataque. As 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 que lê dados do socket afetado. Na pior das hipóteses, essa vulnerabilidade pode levar a RCE (Execução Remota de Código).

ASA-2019-00503 – Wind River VxWorks: Confusão do estado TCP Urgent Pointer devido à race condition

Uma série de segmentos com e sem o conjunto URG-flag deve chegar em tempo específico enquanto uma aplicação sendo executada pela vítima estiver recebendo dados da sessão. A vítima deve estar usando um kernel SMP e dois ou mais núcleos de CPU, alternativamente, um kernel uni-processador, em que a task de recebimento e a task de rede são executadas em prioridades diferentes. Um pré-requisito é que o sistema use TCP-sockets e haja pelo menos uma sessão TCP ativada na qual um atacante pode injetar tráfego. Essa vulnerabilidade depende de uma race condition entre a tarefa de rede (tNet0) e a aplicação de recebimento. É essencialmente impossível acionar o race condition em um sistema com apenas uma único thread na CPU e nenhuma maneira de acioná-lo de forma confiável em alvos SMP. O impacto da vulnerabilidade é um buffer overflow de até um 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 um TCP window 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 que lê do socket afetado. Na pior das hipóteses, essa vulnerabilidade pode levar a RCE (Execução Remota de Código).

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).