ASA-2019-00012 – Linux: Vazamento de informações de endereço de heap ao usar L2CAP_GET_CONF_OPT


For the English version of this alert, click here.

Allele Security Alert

ASA-2019-00012

Identificador(es)

ASA-2019-00012, CVE-2019-3459

Título

Vazamento de informações de endereço de heap ao usar L2CAP_GET_CONF_OPT

Fabricante(s)

The Linux foundation

Produto(s)

Linux

Versão(ões) afetada(s)

Linux kernel desde 2.6.12-rc2

Versão(ões) corrigida(s)

Desconhecido

Prova de conceito

Desconhecida

Descrição

Foi encontrada uma falha na implementação dos kernels Linux do protocolo de controle e adaptação de links lógicos (L2CAP), parte da pilha bluetooth.

Um atacante com acesso físico dentro da faixa de transmissão padrão do bluetooth pode criar um pacote especialmente criado. A resposta a este pacote especialmente criado pode conter parte do kernel que pode ser usada em outro ataque.

Detalhes técnicos

Na função l2cap_get_conf_opt() em l2cap_core.c, que é usada para analisar elementos de configuração durante um processo de negociação de conexão L2cap, há um uso duplo para o parâmetro de saída ‘val’. Se o comprimento dos dados for 1, 2 ou 4, então o valor retornado é um valor copiado de um buffer de entrada (recebido sobre BT) e retornado por valor. Se o tamanho for diferente, o valor é retornado como um ponteiro para o buffer por referência. O buffer é de um kernel SKB. Como o comprimento é retirado do mesmo buffer e o buffer é recebido via BT, o atacante controla se ‘val’ é retornado como um ponteiro ou como um valor. A variável ‘val’ é usado posteriormente como um valor ou como um ponteiro, dependendo de um campo diferente chamado ‘type’, que é controlado pelo atacante e obtido do mesmo buffer. Presume-se que o parâmetro de saída ‘val’ corresponda ao ‘type’ e seja usado por referência ou por valor. Esta suposição é onde o erro está. Um atacante pode enviar uma resposta em que o tipo é MTU (que usa 2 bytes de ‘val’ por valor) e o tamanho é 3 e, portanto, a MTU retornada será, na verdade, composta dos 2 bytes inferiores do ponteiro para o buffer, que será vazado para o atacante. É uma forma de type confusion sem ter um sistema de tipo sofisticado.

Créditos

Shlomi Oberman, Yuli Shapiro e Karamba Security Ltd. research team

Red Hat

Referência(s)

Linux kernel: Bluetooth: two remote infoleaks (CVE-2019-3459, CVE-2019-3460)
https://seclists.org/oss-sec/2019/q1/58

[PATCH 1/2] Bluetooth: check message types in l2cap_get_conf_opt
https://lore.kernel.org/linux-bluetooth/20190110062833.GA15047@kroah.com/

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

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

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

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