
Recentemente foi publicada uma matéria na BleepingComputer falando sobre a descoberta 29 comandos não documentados no Bluetooth do ESP32 (acessível aqui) mas vamos ver o que exatamente são esses comandos, como eles podem ser utilizados e se isso realmente deveria ser uma preocupação.
O ESP32 é um microcontrolador barato e altamente versátil, amplamente utilizado em dispositivos IoT, e que vendeu mais de 1 bilhão de unidades em 2023. A descoberta de comandos ocultos em seu firmware que podem ser utilizados para invadir outros aparelhos assustou um grande número de pessoas, mas vamos entender melhor o que de fato aconteceu e o que isso representa.
O que aconteceu
Pesquisadores espanhóis Miguel Tarascó Acuña e Antonio Vázquez Blanco, da Tarlogic Security, fizeram uma apresentação na RootedCON em Madri no dia 06/03/2025. Na apresentação, eles explicaram que o interesse na pesquisa de segurança Bluetooth diminuiu nos últimos anos, mas não porque o protocolo se tornou mais seguro.
Eles mostraram que na verdade, o problema é que a maioria dos ataques apresentados no ano passado não tinham ferramentas funcionais, não funcionavam com hardwares genéricos ou utilizavam ferramentas desatualizadas, incompatíveis com sistemas modernos.
Visando solucionar esses problemas, a Tarlogic desenvolveu um novo driver USB Bluetooth baseado em linguagem C que independe do hardware e é multiplataforma, que permite acesso direto ao hardware, sem a dependência de APIs do sistema operacional.
Com essa nova ferramenta em mãos, a Tarlogic descobriu comandos específicos do fabricante, ou seja, que não fazem parte do padrão oficial, ocultos no firmware Bluetooth do ESP32. E esses comandos permitem o controle de baixo nível sobre as funções do Bluetooth.
Quais foram os comandos
Ao todo, foram encontrados 29 comandos não documentados, todos no OGF 0x3F, que é para comandos específicos do fabricante. A tabela abaixo lista cada um dos comandos encontrados.
Código da Operação (Opcode) | Comando |
---|---|
0xFC01 | Ler na memória |
0xFC02 | Escrever na memória |
0xFC03 | Deletar parâmetro NVDS |
0xFC05 | Obter ID da memória flash |
0xFC06 | Limpar a memória flash |
0xFC07 | Escrever na memória flash |
0xFC08 | Ler na memória flash |
0xFC09 | Ler parâmetro NVDS |
0xFC0A | Escrever parâmetro NVDS |
0xFC0B | Habilitar/Desabilitar coexistência |
0xFC0E | Enviar pacote LMP |
0xFC10 | Ler estatísticas do kernel |
0xFC11 | Resetar plataforma |
0xFC12 | Ler informações da memória |
0xFC30 | Ler um registrador |
0xFC31 | Escrever em um registrador |
0xFC32 | Definir endereço MAC |
0xFC35 | Definir valor inicial de CRC |
0xFC36 | Descartar mensagens LLCP |
0xFC37 | Resetar contador RX |
0xFC38 | Resetar contador TX |
0xFC39 | Ler o registrador RF (Não implementado) |
0xFC3A | Escrever no registrador RF (Não implementado) |
0xFC3B | Definir senha do TX |
0xFC40 | Definir parâmetros de LE |
0xFC41 | Configurar parâmetros padrões de LE |
0xFC42 | Habilitar passagem de pacotes LLCP |
0xFC43 | Enviar pacote LLCP |
0xFC44 | Descartar mensagens LMP |
Criação do CVE
Como a Espressif não documentou publicamente esses comandos, acreditava-se que a falha era que eles não deveriam ser acessíveis ou foram deixados na ROM por engano. A partir disso, foi registrada a CVE-2025-27840, que rastreia e identifica o problema.
Resposta da Fabricante
Em uma declaração, a Espressif disse que são comandos de depuração para fins de teste. Ela disse ainda que eles são parte da implementação do protocolo HCI (Host Controller Interface) da Espressif, que é internamente utilizado pelo ESP32 para comunicação entre as camadas Bluetooth.
A empresa disse ainda que removerá esses comandos em uma futura atualização do firmware, mas que a falha só afetas chips ESP32, mas não está presentes no firmware de nenhum chip das famílias ESP32-C, ESP32-S e ESP32-H.
Caso você queira conferir mais detalhes técnicos a respeito desses comandos, clique aqui para acessar a postagem que o Mahavir Jain, gerente de software sênior na Espressif, fez no Espressif Developer Portal destrinchando os detalhes técnicos sobre esses comandos
Impacto na Segurança
Embora muito se tenha falado sobre a utilização desses comandos para invadir dispositivos e redes, já que eles permitiriam ataques de falsificação de identidade e infecção permanente de outros dispositivos, como celular, computadores e fechaduras inteligentes, mas para isso, é necessário que o firmware implementado no chip seja malicioso, o que já é um grande empecilho para atacantes.
De maneira geral, seria necessário ter acesso a interface USB ou UART do dispositivo em questão, o que é algo muito arriscado em um cenário realista de ataque, o que também dificulta bastante a exploração dessa falha por um atacante.
Minha conclusão
É fundamental estarmos atentos ao descobrimento de novas falhas de segurança, bem como utilizar boas políticas de segurança em nossos dispositivos, em especial, a atualização de firmware da fabricante, garantindo o recebimento de patchs de segurança.
Por fim, acredito que os comandos encontrados podem e serão vastamente utilizados pelas comunidades de hacking, mas a dependência do acesso físico ao dispositivo seja uma enorme barreira para ataques em larga escala. De forma semelhante, a popularização de chips mais modernos, como os das famílias ESP32-C e ESP32-S, muito utilizados por empresas, como a M5Stack, em seus produtos, fazem com que falhas como essa sejam cada vez menos críticas.
Deixe um comentário