
Análise detalhada e prova de conceito para CVE-2023-46870, uma escalada local de privilégios no Nordic Semiconductor nRF Sniffer para Bluetooth LE devido a permissões de arquivo inseguras, incluindo etapas de replicação e mitigação.
Nordic Semiconductor nRF Sniffer for Bluetooth LE versões 3.0.0, 3.1.0, 4.0.0, 4.1.0 e 4.1.1 possuem permissões de arquivo incorretas, o que permite que adversários realizem escalonamento de privilégio e execução de código modificando scripts bash e python.
Palavras-chave: Escalonamento Local de Privilégio (LPE), Execução de Código
Plataforma Afetada: Linux, MacOS
Arquivos Afetados: extcap/nrf_sniffer_ble.py, extcap/nrf_sniffer_ble.sh, extcap/SnifferAPI/*.py
O nRF Sniffer for Bluetooth LE é uma extensão do Wireshark que permite o uso de um dongle nRF52840 e Kit de Desenvolvimento para realizar captura e análise de pacotes.
Vídeo no YouTube O vídeo foi gravado quando eu estava com Covid-19, desculpe pela fala lenta.
CVSS:3.0 7.3 Alto Vetor: AV:L/AC:L/PR:L/UI:R/S:U/C:H/I:H/A:H
Devido a esse problema de permissões, os arquivos extraídos são configurados para permitir que o grupo e outros usuários modifiquem (permissões definidas como 777 e 666). Isso permite que qualquer programa ou usuário malicioso, mesmo sem permissões sudo ou root, modifique os scripts bash e python, potencialmente levando à execução de código quando outro usuário iniciar o Wireshark. Como o Wireshark sempre carrega as extensões do diretório extcap, independentemente de o usuário legítimo pretender usar o "nRF Sniffer for Bluetooth LE" ou não, o código sempre será executado.
Corrija manualmente as permissões dos arquivos para 500 ou 400. Por exemplo, no macOS:
chmod 500 ~/.config/wireshark/extcap/nrf_sniffer_ble.sh
chmod 400 ~/.config/wireshark/extcap/SnifferAPI/*