release corretivo com correção crítica (), que na configuração padrão pode levar à execução remota de código por um invasor com privilégios de root. O problema ocorre apenas quando o suporte a TLS está ativado e é explorado através da transmissão de um certificado de cliente especificamente formatado ou um valor modificado no SNI. A vulnerabilidade foi descoberto pela empresa Qualys.
O problema está no manipulador de escape de caracteres especiais em uma string ( do arquivo string.c) e é causado pelo fato de que o caractere ‘\’ no final da string é interpretado antes do caractere nulo (‘\0’) e faz seu escape. Ao fazer o escape, a sequência ‘\’ e o seguinte código nulo do final da string são processados como um único caractere e o ponteiro é movido para dados além dos limites da string, que são tratados como sua continuação.
O código que chama string_interpret_escape() aloca um buffer para a entrada, com base no tamanho real, e o ponteiro atribuído acaba na área fora dos limites do buffer. Assim, ao tentar processar a string de entrada, ocorre uma leitura de dados da área fora da memória alocada, e a tentativa de gravação da string desencriptada pode levar a uma gravação além do limite do buffer.
Na configuração padrão, a vulnerabilidade pode ser explorada através da transmissão de dados especificamente formatados no SNI ao estabelecer uma conexão segura com o servidor. O problema também pode ser explorado através da modificação dos valores peerdn em configurações que são ajustadas para autenticação por certificado de cliente ou ao importar certificados. O ataque por meio de SNI e peerdn é possível desde a versão , na qual a função string_unprinting() foi aplicada para desemaranhar o conteúdo de peerdn e SNI.
Um protótipo de exploit está preparado para ataque via SNI, funcionando em arquiteturas i386 e amd64 em sistemas Linux com Glibc. O exploit utiliza sobreposição de dados na área de heap, resultando na sobrescrita da memória onde o nome do arquivo de log é armazenado. O nome do arquivo é alterado para "\/..\/..\/..\/..\/..\/..\/..\/..\/etc\/passwd". Depois, a variável com o endereço do remetente, que é salva primeiro no log, é sobrescrita, permitindo a adição de um novo usuário ao sistema.
Atualizações de pacotes para correção de vulnerabilidades foram lançadas pelos distribuições , , , e . RHEL e CentOS para o problema , já que o Exim não faz parte do seu repositório padrão de pacotes (em atualização , mas ainda no repositório público). No código do Exim, o problema é resolvido por um patch de uma linha Como uma solução alternativa para bloquear a vulnerabilidade, pode-se desativar o suporte a TLS ou adicionar na
seção ACL «acl_smtp_mail»:
deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
deny condition = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
A vulnerabilidade no driver v4l2, envolvendo a plataforma Android
Fonte: opennet.ru
