
CVE-2018-9539 の PoC コード
CVE-2018-9539 の概念実証コード
ご質問があれば、Twitter (@tamir_zb) で DM をお送りください。
これをビルドするには:
AOSP/external に配置します。cd AOSP
source build/envsetup.sh
make cas_race_uaf
この PoC をパッチ未適用の Android (2018年11月以前の 8.1-9.0) で実行すると、use-after-free が発生します。この PoC は Android 8.1 での実行を想定していません。UaF によってサービスがクラッシュすることを前提としていますが、これは Android 9.0 でのみ発生するため、Android 8.1 でこの PoC を実行すると無限ループになります。
Android 9.0 でこの PoC を実行した場合の出力例は次のとおりです:
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