O exploit anterior conhecido como "checkm8" (2019) cobria dispositivos com chips A5 a A11. Agora, o usbliter8 estende essa mesma classe de ataque para a próxima geração . O chip A11 não é afetado porque seu driver USB reseta manualmente o ponteiro de DMA após cada pacote
. Já os chips A14 e superiores estão protegidos porque configuram corretamente o DART (proteção de memória USB) no SecureROM
.
Mismatch do ponteiro do buffer circular: O controlador armazena até três pacotes USB Setup consecutivos em um buffer DMA. Após cada gravação, ele incrementa um ponteiro de hardware com o tamanho dos dados. Após o terceiro pacote, o ponteiro é resetado, decrementando um valor fixo de 24 bytes .
Truque do pacote subdimensionado: O controlador aceita pacotes menores que os 8 bytes padrão, mas sempre os armazena em blocos alinhados de 4 bytes. Quando um pacote pequeno é recebido, o incremento do ponteiro (dados realmente escritos) não corresponde ao decremento fixo de 24 bytes, criando um underflow de buffer de 12 bytes — o ponteiro efetivamente anda para trás na memória .
Sobrescrição de memória: Isso permite que um atacante sobrescreva regiões da SRAM que deveriam estar inacessíveis durante a inicialização, incluindo dados da pilha e metadados do heap .
Execução de código: No A12, o atacante sobrescreve um registrador de link (LR) salvo na pilha da tarefa USB para obter controle direto do contador de programa (PC). No A13, o PAC (Pointer Authentication Codes) complica o ataque, exigindo uma técnica em várias etapas que também contorna checksums do heap e contadores de pânico .
O BootROM (SecureROM) é o primeiro código executado pelo chip ao ligar. Ele é gravado em memória read-only (ROM) durante a fabricação do chip e é imutável depois que o dispositivo sai da fábrica . Como a causa raiz é um bug de hardware no controlador USB — e não um erro de software — a Apple não pode corrigi-lo com uma atualização de firmware ou sistema operacional
. A única mitigação eficaz é migrar para hardware mais novo (A14 ou superior)
.
Comments
0 comments