
Secuestremos nuestra cadena de arranque - CVE-2021-30327
Un exploit de BootROM para dispositivos Qualcomm lanzados entre 2016 y 2019.
Con el SoC MSM8998 (Nazgul), se agregó el comando 0x13 (SAHARA_RESET_STATE_MACHINE_ID). El comando llamaba a boot_sahara_entry, que se supone que reinicia Sahara. La falla es que cada llamada a él disminuye el puntero de pila en 0x60 y no hay protección de pila. Con suficientes llamadas, agotamos el espacio de pila disponible (0x3000), corrompemos la memoria más allá de la pila y hacemos que los búferes de pila se superpongan con algunas de las tablas globales de punteros de función. secboot_verify_cert_signature leerá el módulo y la firma en formato BIGINT en búferes de pila. Dado que crypto_ftbl->ModExp fue sobrescrito por los búferes, secmath_BIGINT_modexp saltará a nuestro shellcode desde el módulo.
Se puede encontrar más información en HEXACON2023 - Bug Tales : Life and Death in the Sahara
[!CAUTION] Incluso si el SoC es vulnerable, ¡no significa que puedas explotarlo! Si tu SoC está listado aquí, NO almacenes ningún secreto en un dispositivo con él. Cellebrite, MSAB y Oxygen Forensics pueden descifrar los datos del usuario en dispositivos con dichos SoCs, gracias a este 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
This is the CVE which Katana exploitsReported CVE-2021-30327 to QualcommHelped with sniffing this exploitGave me a tool which was exploiting this exact VulnerabilityScript base