V databáze balíkov distribúcie Ubuntu Verzia 26.10, ktorej vydanie je naplánované na 15. októbra, predstavuje kompletný prechod na sadu nástrojov uutils coreutils (Rust Coreutils), napísanú v jazyku Rust. Nástroje Rust Coreutils úplne nahradili všetky komponenty balíka GNU Coreutils vrátane nástrojov cp, mv a rm, ktoré... Ubuntu Verzie 26.04 boli dodávané vo variante GNU Coreutils.
Balík rust-coreutils bol pôvodne štandardne zahrnutý vo vydaní Ubuntu 25.10, ale vo vetve LTS Ubuntu 26.04. apríla boli z balíka GNU Coreutils zrušené utility cp, mv a rm. Tieto možnosti boli vrátené späť z dôvodu bezpečnostných problémov objavených počas auditu kódovej základne Rust Coreutils. Väčšina zraniteľností v Rust Coreutils je spôsobená súbehom, ktorý umožňuje úpravu údajov po overení informácií, ale pred vykonaním operácie (TOCTOU — Time-Of-Check-To-Time-Of-Use). Tieto zraniteľnosti okrem iného umožňujú nahradenie súboru symbolickým odkazom medzi dokončením kontroly a začiatkom operácie.
Pri použití utilít cp, mv a rm v systémových skriptoch spúšťaných s oprávneniami root umožňuje nahradenie symbolickým odkazom kopírovanie, prepisovanie alebo mazanie ľubovoľných súborov. Napríklad pri rekurzívnom mazaní adresárov utilita rm najprv prehľadala všetky adresáre a potom ich postupne vymazala v opačnom poradí volaním funkcie rmdir(). Nahradením symbolického odkazu za nadradený adresár ihneď po prehľadaní tohto adresára, ale pred prehľadaním jeho podradených adresárov, môžete vymazať ľubovoľný adresár v systéme, keď sa denne spúšťa cron skript /etc/cron.daily/apport. Spustený ako root, skript rekurzívne vymaže obsah adresára /var/crash, do ktorého môžu zapisovať všetci používatelia v systéme.
Zdroj: opennet.ru
