في قاعدة بيانات حزم التوزيع Ubuntu يمثل الإصدار 26.10، المقرر إصداره في 15 أكتوبر، انتقالًا كاملًا إلى مجموعة أدوات uutils coreutils (Rust Coreutils) المكتوبة بلغة Rust. وقد حلت أدوات Rust Coreutils محل جميع مكونات حزمة GNU Coreutils بالكامل، بما في ذلك أدوات cp وmv وrm. Ubuntu تم توفير الإصدار 26.04 في نسخة معدلة من GNU Coreutils.
تم تضمين حزمة rust-coreutils افتراضيًا في الإصدار في البداية Ubuntu 25.10، ولكن في فرع LTS Ubuntu في 26.04 أبريل، تم التراجع عن استخدام أدوات النسخ (cp) والنقل (mv) والحذف (rm) من حزمة GNU Coreutils. وقد تم التراجع عن هذه الخيارات بسبب ثغرات أمنية تم اكتشافها خلال تدقيق قاعدة بيانات Rust Coreutils. تنتج معظم الثغرات في Rust Coreutils عن حالات التزامن المتنافس، والتي تسمح بتعديل البيانات بعد التحقق من صحتها ولكن قبل تنفيذ العملية (TOCTOU - من وقت التحقق إلى وقت الاستخدام). ومن بين أمور أخرى، تسمح هذه الثغرات باستبدال ملف برابط رمزي بين اكتمال عملية التحقق وبدء العملية.
عند استخدام أدوات cp و mv و rm في نصوص النظام التي تُشغَّل بصلاحيات المستخدم الجذر، يسمح استبدالها برابط رمزي بنسخ أي ملفات أو الكتابة فوقها أو حذفها. على سبيل المثال، عند حذف المجلدات بشكل متكرر، تقوم أداة rm أولاً بفحص جميع المجلدات ثم تحذفها بالتسلسل بترتيب عكسي عن طريق استدعاء الدالة rmdir(). باستبدال المجلد الأصل برابط رمزي مباشرةً بعد فحصه، ولكن قبل فحص مجلداته الفرعية، يمكنك حذف أي مجلد على النظام عند تشغيل نص cron /etc/cron.daily/apport يوميًا. عند تشغيله بصلاحيات المستخدم الجذر، يحذف النص محتويات المجلد /var/crash بشكل متكرر، وهو مجلد قابل للكتابة من قِبل جميع المستخدمين على النظام.
المصدر: opennet.ru
