Vulnerabilidades no kernel do Linux exploradas remotamente via Bluetooth

Uma vulnerabilidade foi identificada no núcleo do Linux (CVE-2022-42896), que pode ser potencialmente explorada para executar código remotamente no nível do núcleo ao enviar um pacote L2CAP formatado de forma específica via Bluetooth. Além disso, outro problema semelhante (CVE-2022-42895) foi encontrado no manipulador L2CAP, que pode levar ao vazamento de conteúdo da memória do núcleo em pacotes com informações de configuração. A primeira vulnerabilidade existe desde agosto de 2014 (núcleo 3.16) e a segunda desde outubro de 2011 (núcleo 3.0). As vulnerabilidades foram corrigidas nas versões do núcleo Linux 6.1.0, 6.0.8, 4.9.333, 4.14.299, 4.19.265, 5.4.224, 5.10.154 e 5.15.78. Você pode acompanhar a correção nas distribuições nas seguintes páginas: Debian, Ubuntu, Gentoo, RHEL, SUSE, Fedora, Arch.

Para demonstrar a possibilidade de uma ataque remoto, protótipos de exploits foram publicados, funcionando no Ubuntu 22.04. Para conduzir o ataque, o invasor deve estar dentro do alcance do Bluetooth — não é necessário emparelhamento prévio, mas o Bluetooth deve estar ativado no computador. Para o ataque, é suficiente saber o endereço MAC do dispositivo da vítima, que pode ser determinado através de sniffing ou, em alguns dispositivos, calculado com base no endereço MAC do Wi-Fi.

A primeira vulnerabilidade (CVE-2022-42896) é causada pelo acesso a uma área de memória já liberada (use-after-free) na implementação das funções l2cap_connect e l2cap_le_connect_req — após a criação do canal através da chamada de retorno new_connection, não foi aplicada nenhuma bloqueio para ele, mas um temporizador (__set_chan_timer) foi configurado, e após o tempo limite, que chama a função l2cap_chan_timeout e limpa o canal sem verificar se o trabalho com o canal foi concluído nas funções l2cap_le_connect*.

Por padrão, o tempo limite é de 40 segundos e suponha-se que uma condição de corrida não pode ocorrer com esse atraso, mas foi descoberto que, devido a outro erro no manipulador SMP, é possível provocar uma chamada instantânea do temporizador, resultando em uma condição de corrida. O problema em l2cap_le_connect_req pode levar ao vazamento de memória do núcleo, enquanto em l2cap_connect pode resultar na sobrescrição do conteúdo da memória e execução do código do invasor. O primeiro tipo de ataque pode ser realizado usando Bluetooth LE 4.0 (desde 2009), enquanto o segundo pode ser realizado com Bluetooth BR/EDR 5.2 (desde 2020).

A segunda vulnerabilidade (CVE-2022-42895) é causada pelo vazamento de dados residuais da memória na função l2cap_parse_conf_req, o que pode ser usado para obter remotamente informações sobre ponteiros para estruturas do núcleo através do envio de solicitações de configuração especialmente formatadas. Na função l2cap_parse_conf_req, foi utilizada a estrutura l2cap_conf_efs, para a qual não foi realizada a inicialização prévia da memória alocada e, através da manipulação do sinalizador FLAG_EFS_ENABLE, era possível incluir no pacote dados antigos da pilha. O problema se manifesta apenas em sistemas onde o núcleo é compilado com a opção CONFIG_BT_HS (desativada por padrão, mas ativada em algumas distribuições, como Ubuntu). Para um ataque bem-sucedido, também é necessário definir o parâmetro HCI_HS_ENABLED por meio da interface de controle como verdadeiro (não utilizado por padrão).

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster