ASA-2019-00532 – Dovecot: Out-of-bounds heap memory write nos parsers dos protocolos IMAP e ManageSieve


For the English version of this alert, click here.

Allele Security Alert

ASA-2019-00532

Identificador(es)

ASA-2019-00532, DOV-3278, CVE-2019-11500

Título

Out-of-bounds heap memory write nos parsers dos protocolos IMAP e ManageSieve

Fabricante(s)

OX Software GmbH

Produto(s)

Dovecot

Versão(ões) afetada(s)

Todas as versões do Dovecot anteriores a 2.3.7.2 e 2.2.36.4

Versão(ões) corrigida(s)

Dovecot versões 2.3.7.2 e 2.2.36.4

Prova de conceito

Sim

Descrição

Os parsers dos protocolos IMAP e ManageSieve não processam corretamente o byte NUL ao escanear dados entre aspas, conduzindo a out-of-bounds write na heap.

Detalhes técnicos

Essa vulnerabilidade permite out-of-bounds writes em objetos armazenados na heap de até 8096 bytes na fase de pré-login e 65536 bytes na fase de pós-login, permitindo que usuários executem ataques que podem levar ao vazamento de informações ou execução remota de código. O abuso dessa vulnerabilidade é de difícil observação, pois não necessariamente causa um crash. Tentativas de utilização deste bug não são diretamente evidentes nos logs do sistema.

Passos para reproduzir o bug:

bug é melhor observado usando valgrind para ver o out of bounds read com o seguinte  código:

perl -e 'print "a id (\"foo\" \"".("x"x1021)."\\A\" \"bar\"
\"\000".("x"x1020)."\\A\")\n"' | nc localhost 143

Créditos

Nick Roessler (University of Pennsylvania) e Rafi Rubin (University of Pennsylvania)

Referência(s)

Critical Dovecot and Pigeonhole vulnerability
https://www.openwall.com/lists/oss-security/2019/08/28/3

CVE-2019-11500: Critical vulnerability in Dovecot and Pigeonhole
https://dovecot.org/pipermail/dovecot/2019-August/116873.html

Bug 240174 – mail/dovecot: Update to 2.3.7.2 (Fixes CVE-2019-11500)
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=240174

lib-imap: Don’t accept strings with NULs
https://github.com/dovecot/core/commit/eda0f7f0b9a713d931ba41c4364c6a24d035cd8e

lib-imap: Make sure str_unescape() won’t be writing past allocated memory
https://github.com/dovecot/core/commit/e5e3a8fed685af7ed45d584f5406e9dd2a490669

lib-managesieve: Don’t accept strings with NULs
https://github.com/dovecot/pigeonhole/commit/16e047c54ca23f6fd585734c4f11c683df4a21eb

lib-managesieve: Make sure str_unescape() won’t be writing past allocated memory
https://github.com/dovecot/pigeonhole/commit/10c5cbe87aa0bd7daee11561a3b24460f9a65bec

CVE-2019-11500
https://access.redhat.com/security/cve/CVE-2019-11500

CVE-2019-11500
https://security-tracker.debian.org/tracker/CVE-2019-11500

CVE-2019-11500 in Ubuntu
https://people.canonical.com/~ubuntu-security/cve/CVE-2019-11500.html

CVE-2019-11500 | SUSE
https://www.suse.com/security/cve/CVE-2019-11500

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

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

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

Última modificação: 24 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.