
استغلال القراءة/الكتابة في نواة ANE لنظامي iOS 15 وmacOS 12
WeightBufs هو استغلال للقراءة/الكتابة على مستوى النواة (kernel r/w) لجميع أجهزة Apple التي تدعم محرك Neural Engine.
الثغرات والاستغلال من قِبل @simo36، يمكنك قراءة شرائح العرض التقديمي في POC لمزيد من التفاصيل حول الثغرات وتقنيات الاستغلال.
لا يعتمد الاستغلال على أي عنوان أو إزاحة ثابتة، ويجب أن يعمل كما هو على macOS12 حتى 12.4 و *OS 15 حتى 15.5.
تؤثر ثغرات النواة على جميع إصدارات iOS 15 (حتى 16.0)، ومع ذلك تم إصلاح هروب sandbox في iOS 15.6. ونتيجة لذلك، يلزم كسر سلسلة الاستغلال وإيجاد هروب آخر من sandbox لإعادة الأمور إلى العمل على iOS 15.6/15.7. على الرغم من أن لديّ هروبًا آخر من sandbox يعمل حتى iOS 16.1، إلا أنني لست متأكدًا مما إذا كانت تقنيات استغلال النواة لا تزال قابلة للاستخدام على iOS 15.6+.
يستغل هذا الاستغلال 4 ثغرات اكتشفتها بشكل مستقل وأبلغت Apple بها:
CVE-2022-32845 : تجاوز فحص التوقيع الخاص بـ aned لملف model.hwx.CVE-2022-32948 : قراءة خارج الحدود (OOB Read) في DeCxt::FileIndexToWeight() بسبب عدم التحقق من فهرس المصفوفة.CVE-2022-42805 : قراءة عشوائية محتملة في ZinComputeProgramUpdateMutables() بسبب مشكلة تجاوز عدد صحيح.CVE-2022-32899 : تجاوز سعة سفلية (Buffer underflow) في DeCxt::RasterizeScaleBiasData() بسبب مشكلة تجاوز عدد صحيح.هناك بعض الحالات التي قد يفشل فيها الاستغلال:
MUTK، ومع ذلك يكتشف الاستغلال الفشل مبكرًا، مما يمنع تعطل الجهاز. يكفي تشغيل الاستغلال مرة أخرى ويجب أن ينجح في المحاولة الثانية.DEBUG_EXPLOIT_STAGE_2_KERN_PANIC و DEBUG_EXPLOIT_STAGE_3_KERN_PANIC لمزيد من التفاصيل.يتضمن WeightBufs ملفات رأس لإطار عمل AppleNeuralEngine تم إنشاؤها بواسطة Elias Limneos عبر classdump-dyld 1.0.
يُصدر WeightBufs بموجب رخصة MIT.