problema
O código que chama string_interpret_escape() aloca um buffer para o dreno com base no tamanho real, e o ponteiro exposto termina em uma área fora dos limites do buffer. Conseqüentemente, ao tentar processar uma string de entrada, surge uma situação ao ler dados de uma área fora dos limites do buffer alocado, e uma tentativa de gravar uma string sem escape pode levar à gravação além dos limites do buffer.
Na configuração padrão, a vulnerabilidade pode ser explorada enviando dados especialmente projetados para o SNI ao estabelecer uma conexão segura com o servidor. O problema também pode ser explorado modificando valores peerdn em configurações configuradas para autenticação de certificado de cliente ou ao importar certificados. Ataque via SNI e peerdn é possível a partir do lançamento
Um protótipo de exploit foi preparado para um ataque via SNI, rodando nas arquiteturas i386 e amd64 em sistemas Linux com Glibc. A exploração usa sobreposição de dados na área de heap, resultando na substituição da memória na qual o nome do arquivo de log está armazenado. O nome do arquivo é substituído por "/../../../../../../../../etc/passwd". Em seguida, é sobrescrita a variável com o endereço do remetente, que primeiro é salvo no log, o que permite adicionar um novo usuário ao sistema.
Atualizações de pacotes com correções de vulnerabilidades lançadas por distribuições
Como solução alternativa para bloquear a vulnerabilidade, você pode desativar o suporte TLS ou adicionar
Seção ACL “acl_smtp_mail”:
condição de negação = ${if eq{\\}{${substr{-1}{1}{$tls_in_sni}}}}
condição de negação = ${if eq{\\}{${substr{-1}{1}{$tls_in_peerdn}}}}
Fonte: opennet.ru