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