
إثبات مفهوم (PoC) غير مُتحقَّق منه لتصعيد الامتيازات في نواة لينكس، يستخدم إعادة الاستخدام عبر ذاكرة التخزين المؤقت لـ msg_msgseg لتداخل skb مع pipe_buffer، وتعديل أعلام الأنبوب (pipe flags) لقراءة /etc/passwd.
لأغراض البحث التجريبي فقط؛ كود prefetch وnperm (مرجع الذاكرة الذي يتطلب إعداد set.gdb) غير مُرفق، ولم يتم تحسينه لذا فإن احتمال الإصابة منخفض.
لاحظ المؤلف أن صاحب الثغرة قد نشر المعلومات المتعلقة بهذه الثغرة: https://github.com/google/security-research/pull/414
فكرة الاستغلال مختلفة تمامًا، ونظرًا لعدم التحقق الكامل من هذه الفكرة يبقى الرأي متحفظًا (بشكل أساسي، لم يختبر المؤلف فعليًا ما إذا كان قفل sock الدوراني يمكن أن يدخل في حالة سباق، ووفقًا لفهم جزئي للكود المصدري يمكن إحداث حالة السباق عبر المقاطعة الصلبة لـ timerfd).
التحليل الأولي: https://xz.aliyun.com/news/92649
فكرة الاستغلال: إعادة استخدام tipc_sock عبر cross_cache باستخدام msg_msgseg، وتزوير بعض الحقول لاجتياز جميع الفحوصات ثم تحريره في النهاية، ثم بناء تداخل (overlap) بين skb وpipe_buffer، وتعديل flags الخاصة بـ pipe_buffer (استخدام splice على ملف للقراءة فقط /etc/passwd ثم تعديل flags، وهي فكرة استغلال موسعة من dirtypipe). ونظرًا لعدم تسريب عنوان كومة النواة، فإن wq المُزوَّر في sk->lock لا يمكن أن يشير إلى نفسه؛ ولاجتياز الفحص تم تزوير curr->func (راجع الكود المصدري لسلسلة استدعاء __wake_up_common) ليكون ret، لذا فإن تنفيذ dataonly ليس مكتملًا تمامًا.