Dirty Pipe: ثغرة تسمح بالكتابة فوق البيانات

مؤخرا اندلعت الأخبار ذلك تم التعرف على ثغرة أمنية في Linux kernel والتي تمت فهرستها بالفعل ضمن CVE-2022-0847 والتي أطلقوا عليها اسم "الأنابيب القذرة".

هذه الثغرة التي يطلق عليها "Dirty Pipe"يسمح للكتابة فوق محتويات ذاكرة التخزين المؤقت من الصفحة لأي ملف ، بما في ذلك الملفات المضبوطة للقراءة فقط ، أو المفتوحة بعلامة O_RDONLY ، أو الموجودة على أنظمة الملفات المثبتة للقراءة فقط.

على الجانب العملي ، الضعف يمكن استخدامها لحقن التعليمات البرمجية في العمليات التعسفية أو البيانات الفاسدة في الملفات المفتوحة. على سبيل المثال ، يمكنك تغيير محتوى ملف author_keys لعملية sshd.

حول الأنابيب القذرة

إنه مشابه للضعف الحرج Dirty COW التي تم تحديدها في عام 2016 وأن Dirty Pipe هو على نفس مستوى Dirty COW من حيث الخطر ، ولكن هذا أسهل بكثير للعمل.

تم التعرف على Dirty Pipe أثناء تحليل الشكاوى المتعلقة بالتلف الدوري للمحفوظات تم التنزيل عبر الشبكة على نظام يقوم بتنزيل الملفات المضغوطة من خادم تسجيل (37 ضررًا في 3 أشهر على نظام محمل) ، والتي تم إعدادها باستخدام عملية لصق () وأنابيب غير مسماة.

عالي التأثر يظهر منذ إصدار Linux kernel 5.8، صدر في أغسطس 2020.

من خلال رؤية طريقة أخرى يمكننا القول أنها موجودة في دبيان 11 ولكنها لا تؤثر على النواة الأساسية في Ubuntu 20.04 LTS ، بينما بالنسبة لـ RHEL 8.x و openSUSE / SUSE 15 نواة تستند في الأصل إلى الفروع القديمة ، ولكن هذا ممكن أن التغيير الذي يسبب المشكلة قد تم نقله إليهم (لا توجد بيانات دقيقة حتى الآن).

ترجع الثغرة الأمنية إلى عدم تهيئة القيمة "buf-> flags" في كود الدالتين copy_page_to_iter_pipe () و push_pipe () ، على الرغم من عدم مسح الذاكرة عند تخصيص الهيكل ، ومع بعض التلاعبات مع عدم تسمية الأنابيب ، "buf-> flags" قد تحتوي على قيمة من عملية أخرى. باستخدام هذه الميزة ، يمكن للمستخدم المحلي غير المتميز تحقيق مظهر قيمة PIPE_BUF_FLAG_CAN_MERGE في العلم ، مما يسمح له بالكتابة فوق البيانات الموجودة في ذاكرة التخزين المؤقت للصفحة ببساطة عن طريق كتابة بيانات جديدة إلى أنبوب غير مسمى مُعد خصيصًا.

لهجوم يمكن القيام به ، فأنت بحاجة إلى ملف هدف يجب أن يكون قابلاً للقراءة ونظرًا لعدم التحقق من حقوق الوصول عند الكتابة إلى أنبوب ، يمكن إجراء الاستبدال على ذاكرة التخزين المؤقت للصفحة ، حتى بالنسبة للملفات الموجودة في أقسام القراءة فقط (على سبيل المثال ، ملفات c CD-ROM).

مع هذا ، بعد استبدال المعلومات الموجودة في ذاكرة التخزين المؤقت للصفحة ، لن تتلقى العملية ، عند قراءة البيانات من الملف ، البيانات الحقيقية ، ولكن البيانات المستبدلة.

يذكر أن تتلخص عملية الأنابيب القذرة في إنشاء أنبوب غير مسمى وتعبئته ببيانات عشوائية لتحقيق ضبط علامة PIPE_BUF_FLAG_CAN_MERGE على جميع الهياكل الحلقية المرتبطة بها.

تتم قراءة البيانات بعد ذلك من الأنبوب ، ولكن تظل العلامة مضبوطة على جميع مثيلات بنية pipe_buffer في هياكل الحلقة pipe_inode_info. ثم يتم إجراء استدعاء لصق () لقراءة البيانات من الملف الوجهة إلى أنبوب غير مسمى ، بدءًا من الإزاحة المطلوبة. عند كتابة البيانات إلى هذا الأنبوب غير المسمى ، ستكتب علامة PIPE_BUF_FLAG_CAN_MERGE فوق البيانات الموجودة في ذاكرة التخزين المؤقت للصفحة بدلاً من إنشاء مثيل جديد من بنية pipe_buffer.

أخيرا إذا كنت مهتمًا بمعرفة المزيد عنها ، يمكنك التحقق من التفاصيل في الملاحظة الأصلية في الرابط التالي.

أيضا ، إذا كنت مهتمًا بـ أن تكون قادرًا على متابعة نشر التحديثات أو التعرف عليها من الحزم في التوزيعات الرئيسية ، يمكنك القيام بذلك من هذه الصفحات: ديبيانSUSEأوبونتوRHELفيدوراجنتوقوس لينكس.

يذكر أن إصلاح الثغرات الأمنية المقترح متاح في إصدارات Linux Kernel 5.16.11 و 5.15.25 و 5.10.102 ، كما تم تضمين الإصلاح في النواة المستخدمة على نظام Android الأساسي.


اترك تعليقك

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها ب *

*

*

  1. المسؤول عن البيانات: AB Internet Networks 2008 SL
  2. الغرض من البيانات: التحكم في الرسائل الاقتحامية ، وإدارة التعليقات.
  3. الشرعية: موافقتك
  4. توصيل البيانات: لن يتم إرسال البيانات إلى أطراف ثالثة إلا بموجب التزام قانوني.
  5. تخزين البيانات: قاعدة البيانات التي تستضيفها شركة Occentus Networks (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.