
Détournons notre bootchain - CVE-2021-30327
Un exploit BootROM pour les appareils Qualcomm sortis entre 2016 et 2019.
Avec le SoC MSM8998 (Nazgul), la commande 0x13 (SAHARA_RESET_STATE_MACHINE_ID) a été ajoutée. La commande appelait boot_sahara_entry, qui est censée réinitialiser Sahara. Le défaut est que chaque appel à cette fonction décrémente le pointeur de pile de 0x60 et qu'il n'y a aucune protection de pile. Avec suffisamment d'appels, nous épuisons l'espace de pile disponible (0x3000), corrompons la mémoire au-delà de la pile et faisons chevaucher les tampons de pile avec certaines des tables globales de pointeurs de fonction. secboot_verify_cert_signature lira le modulus et la signature au format BIGINT dans des tampons de pile. Comme crypto_ftbl->ModExp a été écrasé par les tampons, secmath_BIGINT_modexp sautera dans notre shellcode à partir du modulus.
Plus d'informations sur HEXACON2023 - Bug Tales : Life and Death in the Sahara
[!CAUTION] Même si le SoC est vulnérable, cela ne signifie pas que vous pouvez l'exploiter ! Si votre SoC est répertorié ici, NE stockez AUCUN secret sur un appareil qui l'utilise. Cellebrite, MSAB et Oxygen Forensics sont capables de déchiffrer les données utilisateur sur les appareils équipés de tels SoCs, grâce à cette CVE.

usage: katana.py [-h] -s SOC -e EXPLOIT [-f FIREHOSE]
A PoC for the CVE-2021-30327 vulnerability in Qualcomm Sahara
options:
-h, --help show this help message and exit
-s, --soc SOC SoC model
-e, --exploit EXPLOIT
Exploit PBL (CVE-2021-30327) with a payload
-f, --firehose FIREHOSE
DevPrg image in case the payload reinitializes Sahara
C'est la CVE exploitée par KatanaA signalé la CVE-2021-30327 à QualcommA aidé à sniffer cet exploitM'a donné un outil qui exploitait exactement cette vulnérabilitéBase du script