ASA-2019-00351 – Mozilla Thunderbird: Heap-based buffer overflow na função icalmemory_strdup_and_dequote()


For the English version of this alert, click here.

Allele Security Alert

ASA-2019-00351

Identificador(es)

ASA-2019-00351, CVE-2019-11704, X41-2019-001, MFSA2019-17

Título

Heap-based buffer overflow na função icalmemory_strdup_and_dequote()

Fabricante(s)

Mozilla

Produto(s)

Mozilla Thunderbird

Versão(ões) afetada(s)

Mozilla Thunderbird versões anteriores a 60.7.1

Versão(ões) corrigida(s)

Mozilla Thunderbird versão 60.7.1

Prova de conceito

Sim

Descrição

Um heap-based buffer overflow foi identificado no cliente de email Thunderbird. O problema está presente na implementação do libical, que foi extraída da versão 0.47 do Libical.

O problema pode ser disparado remotamente quando um atacante envia um anexo de calendário especialmente criado e não requer interação do usuário. Pode ser usado por um atacante remoto para travar ou obter execução remota de código no sistema do cliente.

Detalhes técnicos

Um heap-based buffer overflow em icalvalue.c icalmemory_strdup_and_dequote() pode ser disparado durante a análise de um anexo de calendário que contém uma sequência malformada ou especialmente criada.

static char *icalmemory_strdup_and_dequote(const char *str)
{
    char *out = (char *)malloc(sizeof(char) * strlen(str) + 1);
    char *pout = out;
    // ...
    for (p = str; *p!=0; p++){
        if( *p == '\\')
        {
            p++;
        // ...
        else 
        {
            *pout = *p;
        }
    }

A verificação de limites em icalmemory_strdup_and_dequote() pode ser ignorada quando a entrada p termina com uma barra invertida, que permite a um atacante causar um out-of-bounds read do buffer de entrada e out-of-bounds write em um buffer de saída alocado para heap.

O problema se manifesta de várias maneiras, incluindo out-of-bounds read/write, NULL pointer dereference e freqüentemente leva à corrupção de heap.

Espera-se que um atacante possa explorar essa vulnerabilidade para obter a execução remota de código.

Créditos

Luis Merino (X41 D-SEC GmbH)

Referência(s)

ADVISORY X41-2019-001: HEAP-BASED BUFFER OVERFLOW IN THUNDERBIRD
https://www.x41-dsec.de/lab/advisories/x41-2019-001-thunderbird/

Security vulnerabilities fixed in Thunderbird 60.7.1
https://www.mozilla.org/en-US/security/advisories/mfsa2019-17/#CVE-2019-11704

advisories/X41-2019-001 at master · x41sec/advisories
https://github.com/x41sec/advisories/tree/master/X41-2019-001

X41 D-Sec GmbH Security Advisory X41-2019-001: Heap-based buffer overflow in Thunderbird
https://seclists.org/oss-sec/2019/q2/157

Heap buffer overread in libical (icalparser_parse_string function)
https://bugzilla.mozilla.org/show_bug.cgi?id=1280832

CVE-2019-11704
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11704

CVE-2019-11704
https://nvd.nist.gov/vuln/detail/CVE-2019-11704

Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.

Última modificação: 14 setembro 2019

Não somos responsáveis por qualquer perda de dados, corrupção de dispositivos ou qualquer outro tipo de problema devido ao uso de qualquer informação mencionada em nossos alertas de segurança.