
Exploit Cert pour les appareils MTK. Il existe une faille logique dans le processus de vérification des certificats MTK. Similaire à CVE-2023-20696.
Exploit de certificat pour les appareils MTK. Il y a une faille logique dans le processus de vérification des certificats MTK. Similaire à CVE-2023-20696. Corrigé. CVE-2023-20696 CVE-2025-20730
Il y a quelques problèmes concernant la détection d'architecture. À corriger quand j'aurai du temps. Ou quelqu'un peut faire une pull request. Ceci est une version « vibe-coded », et je la réécrirai plus tard. Mais pour l'instant, elle est utilisable.
Ce projet est uniquement destiné à la recherche. Assurez-vous d'obtenir une autorisation avant de l'utiliser. Toute utilisation illégale est interdite. Il est interdit d'utiliser cet exploit pour fournir des services payants.
Pour les appareils MTK, le preloader vérifie bl2_ext/lk/atf puis y saute.
Ces images sont signées avec des certificats ASN.1.
Mais il y a une faille logique dans le processus d'analyse ASN.1.
Pour les anciens appareils V5/V6, le contenu du certificat est identifié par bypass_mode 1.
Dans ce mode, chaque objet est parcouru.
Nous pouvons donc créer un faux certificat avec un objet 0x3 (bit string).
Le faux certificat n'est pas modifié. Il peut donc passer la validation.
Le vrai certificat se trouve sous le faux certificat. Et nous pouvons placer le hash de l'image et le hash de l'en-tête d'image au début du vrai certificat.
Pour les nouveaux appareils V6, le contenu du certificat est identifié par bypass_mode 0
Dans ce mode, tous les objets sont ignorés sauf 0x30.
Nous pouvons donc placer le hash de l'image et le hash de l'en-tête d'image au début du certificat.
Puis gardez le reste inchangé.
Ensuite, nous pouvons modifier le contenu de l'image.
Nous obtenons ainsi le contrôle EL3.
Vous pouvez patcher BL2_EXT pour supprimer la vérification de lk, atf ou gz.
Puis patcher LK pour supprimer la vérification de lk_main_dtb (sinon cela plantera)
Et vous devez patcher LK pour supprimer tous les verrous du bootloader, y compris set_lock_state, afin d'éviter un reverrouillage ou certains crashs.
python parse-part-img.py [the original image file] --split -o out
Ensuite, vous pouvez voir les images séparées (telles que lk, bl2_ext, lk_main_dtb, aee)
après le patch Pour les nouveaux appareils v6 python sign_mtk_cert.py [single image file] -w Pour les anciens appareils v6/v5 python sign_mtk_cert.py [single image file] -w --legacy
Insérez ensuite la nouvelle image signée
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]
