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: 15 fevereiro 2019