
Exploit de certificação para dispositivos MTK. Existe uma falha lógica no processo de verificação de certificados da MTK. Semelhante ao CVE-2023-20696.
Exploração de certificado para dispositivos MTK. Há uma falha lógica no processo de verificação de certificados MTK. Similar ao CVE-2023-20696. Corrigido. CVE-2023-20696 CVE-2025-20730
Existem alguns problemas com a detecção de arquitetura. Precisam ser corrigidos quando eu estiver livre. Ou qualquer um pode fazer um pull request. Esta é uma versão vibe-coded, e eu vou reescrevê-la mais tarde. Mas por enquanto é utilizável.
Este projeto é usado apenas para pesquisa. Certifique-se de obter autorização antes de usá-lo. Não é permitido para uso ilegal. Não é permitido usar esta exploração para fornecer serviços pagos.
Para dispositivos MTK, o preloader verifica bl2_ext/lk/atf e então salta para ele.
Essas imagens são assinadas com certificados ASN.1.
Mas há uma falha lógica no processo de análise do ASN.1.
Para dispositivos V5/V6 antigos, o conteúdo do certificado é identificado por bypass_mode 1.
Neste modo, qualquer objeto será percorrido.
Então podemos criar um certificado falso com objeto 0x3 (bit string).
O certificado falso não é modificado. Então pode passar na validação.
O certificado real está sob o certificado falso. E podemos colocar o hash da imagem e o hash do cabeçalho da imagem no início do certificado real.
Para dispositivos V6 novos, o conteúdo do certificado é identificado por bypass_mode 0
Neste modo, qualquer objeto será ignorado exceto 0x30.
Então podemos colocar o hash da imagem e o hash do cabeçalho da imagem no início do certificado.
Então manter as outras coisas inalteradas.
Então podemos modificar o conteúdo da imagem.
Então ganhamos controle EL3.
Você pode corrigir o BL2_EXT para remover a verificação de lk, atf ou gz.
E então corrigir o LK para remover a verificação de lk_main_dtb (caso contrário, irá travar).
E você precisa corrigir o LK para remover todos os bloqueios do bootloader, incluindo set_lock_state, para evitar novos bloqueios ou algumas falhas.
python parse-part-img.py [the original image file] --split -o out
Então você pode ver imagens separadas (como lk, bl2_ext, lk_main_dtb, aee)
após a correção Para dispositivos v6 novos python sign_mtk_cert.py [single image file] -w Para dispositivos v6/v5 antigos python sign_mtk_cert.py [single image file] -w --legacy
Em seguida, insira a nova imagem assinada de volta
python build-part-img.py replace [original image file] --name [the single image name you want to insert back] -- file [the new signed single image]
