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