
POC para CVE-2025-24132 (AirBourne). Atualmente apenas aciona o overflow e causa uma falha.
POC para CVE-2025-24132 (AirBourne). Atualmente apenas desencadeia o estouro e causa uma falha.
Em uma tentativa de obter acesso root à unidade principal do meu carro, pesquisei e compilei tudo o que aprendi sobre o exploit Airplay CVE-2025-24132 (chamado Airbourne) descoberto pela Oligo Security.
https://www.oligo.security/blog/airborne
Este é o meu primeiro projeto de engenharia reversa. Entrei nisso nunca tendo usado um depurador, com muito pouca experiência em Linux e programação, e nunca tendo tocado no MacOS até a metade deste projeto. Talvez eu devesse ter começado com algum CTF... Bem, trabalhei nisso de forma intermitente nos últimos meses apenas para ver se conseguiria fazer.
Levei vários meses para obter uma cópia vulnerável e corrigida de um binário para comparar, e depois mais um mês para realmente fazê-los funcionar em um emulador.
Mas, no final das contas, o código vulnerável é impossível de ser alcançado em um emulador, pois requer comunicação com um chip MFi físico na placa lógica. Depois de lutar por 2 meses imaginando por que não conseguia alcançar o estouro e então perceber o problema, consegui canibalizar o binário o suficiente, removendo as verificações das respostas do chip MFi e preenchendo o que ele teria retornado com lixo. Isso me permitiu finalmente alcançar o estouro e entender o suficiente para causar uma falha em um sistema real.
O estouro existe dentro do tratamento da criptografia AES CTR. O tamanho da chave de criptografia passada em um pacote SETUP não é verificado e assumido como 16, e um buffer de 16 é criado.
Essas falhas são quase imperceptíveis, pois o servidor geralmente reinicia e reconecta imediatamente, resultando apenas em uma breve perda de áudio ou alguns segundos de tela preta em um sistema CarPlay. Ainda não consegui descobrir como eles estão vazando memória, então atualmente isso é viável apenas em dispositivos com proteções de pilha desabilitadas.
Encontrar uma maneira de vazar memória para contornar as proteções de pilha.
Isso funciona contra unidades CarPlay ou AirPlay que não exigem nenhum tipo de autorização. Se um PIN for necessário para parear primeiro, isso não funcionará, pois há mais etapas de pareamento envolvidas que não foram implementadas.
Para dispositivos baseados em Bluetooth, para evitar ter que fazer todo o trabalho chato de descobrir o pareamento Bluetooth, você pode simplesmente baixar um aplicativo como Pyto e executar o script diretamente do telefone, como eu fiz. Muito mais fácil.
Adicionarei aqui dispositivos corrigidos conhecidos à medida que os descobrir.