
ANEカーネルr/wエクスプロイト(iOS 15およびmacOS 12向け)
WeightBufs は、Neural Engine を搭載したすべての Apple デバイス向けのカーネル r/w エクスプロイトです。
バグとエクスプロイトは @simo36 によるものです。脆弱性と悪用手法の詳細については、POC での発表スライド をご覧ください。
このエクスプロイトはハードコードされたアドレスやオフセットに依存しておらず、macOS12 から 12.4 まで、および *OS 15 から 15.5 まででそのまま動作するはずです。
カーネルの脆弱性はすべての iOS 15 バージョン(16.0 まで)に影響しますが、サンドボックスエスケープは iOS 15.6 で修正されています。その結果、エクスプロイトチェーンが機能しなくなり、iOS 15.6/15.7 で再び動作させるには別のサンドボックスエスケープが必要です。 iOS 16.1 まで動作する別のサンドボックスエスケープは持っていますが、カーネルエクスプロイトの手法が iOS 15.6+ でまだ使えるかどうかは確信がありません。
このエクスプロイトは、私が独自に発見して Apple に報告した 4 つの脆弱性を連鎖させます:
CVE-2022-32845 : model.hwx に対する aned 署名チェックのバイパス。CVE-2022-32948 : 配列インデックスの検証不足による DeCxt::FileIndexToWeight() の OOB Read。CVE-2022-42805 : 整数オーバーフローの問題による ZinComputeProgramUpdateMutables() の潜在的な任意読み取り。CVE-2022-32899 : 整数オーバーフローの問題による DeCxt::RasterizeScaleBiasData() のバッファアンダーフロー。エクスプロイトが失敗する可能性がある状況がいくつかあります:
MUTK より上位にある場合です。ただし、エクスプロイトは失敗を早期に検出するため、デバイスのクラッシュは防がれます。エクスプロイトを再実行すれば十分で、2 回目の試行で成功するはずです。DEBUG_EXPLOIT_STAGE_2_KERN_PANIC と DEBUG_EXPLOIT_STAGE_3_KERN_PANIC を必ずお読みください。WeightBufs には、Elias Limneos が classdump-dyld 1.0 によって生成した AppleNeuralEngine フレームワークのヘッダーファイルが含まれています。
WeightBufs は MIT ライセンスの下で公開されています。