Ubuntu 26.10 distributsiooni paketibaasis, mille väljalase on kavandatud 15. oktoobriks, on täielikult üle mindud Rustis kirjutatud uutils coreutilsi tööriistakomplektile (Rust Coreutils). Rust Coreutilsi utiliidid on täielikult asendanud kõik GNU Coreutilsi paketi komponendid, sealhulgas utiliidid cp, mv ja rm, mida Ubuntu 26.04-s tarniti veel GNU Coreutilsi versioonidena.
Pakett rust-coreutils lisati vaikimisi algselt Ubuntu 25.10 väljalaskesse, kuid Ubuntu 26.04 LTS-harus mindi tagasi GNU Coreutilsi komplekti kuuluvate cp, mv ja rm utiliitide kasutamisele. cp, mv ja rm versioonid toodi tagasi turbeprobleemide tõttu, mis avastati Rust Coreutilsi koodibaasi auditi käigus. Suurem osa Rust Coreutilsi haavatavustest on põhjustatud võistlusolukordadest, mis võimaldavad andmeid muuta pärast teabe korrektsuse kontrolli, kuid enne nendega toimingu tegemist (TOCTOU — Time-Of-Check-To-Time-Of-Use). Muu hulgas võimaldavad sellised haavatavused asendada faili sümbollingiga kontrolli lõppemise ja toimingu alustamise vahelisel hetkel.
Kui utiliite cp, mv ja rm kasutatakse süsteemiskriptides, mida käivitatakse rooti õigustes, võimaldab sümbollingi asendamine kopeerida, üle kirjutada või kustutada suvalisi faile. Näiteks kataloogide rekursiivsel kustutamisel kontrollis utiliit rm esmalt kõiki katalooge ning kustutas need seejärel ükshaaval vastupidises järjekorras, kutsudes välja funktsiooni rmdir(). Kui asendada ülemkataloog sümbollingiga kohe pärast selle kataloogi kontrolli, kuid enne selles asuvate alamkataloogide kontrolli, on võimalik saavutada süsteemis suvalise kataloogi kustutamine, kui cron käivitab iga päev skripti /etc/cron.daily/apport, mis rooti õigustes eemaldab rekursiivselt kõike kataloogist /var/crash, kuhu kõigil süsteemi kasutajatel on kirjutusõigus.
Allikas: opennet.ru
