V podatkovni bazi paketov distribucije Ubuntu Različica 26.10, ki je predvidena za izdajo 15. oktobra, označuje popoln prehod na komplet orodij uutils coreutils (Rust Coreutils), napisan v jeziku Rust. Pripomočki Rust Coreutils so v celoti nadomestili vse komponente paketa GNU Coreutils, vključno s pripomočki cp, mv in rm, ki ... Ubuntu 26.04 so bile dobavljene v različici GNU Coreutils.
Paket rust-coreutils je bil prvotno privzeto vključen v izdajo Ubuntu 25.10, vendar v veji LTS Ubuntu 26.04. aprila so bili pripomočki cp, mv in rm iz paketa GNU Coreutils povrnjeni. Te možnosti so bile razveljavljene zaradi varnostnih težav, odkritih med revizijo kodne baze Rust Coreutils. Večino ranljivosti v Rust Coreutils povzročajo pogoji tekmovanja, ki omogočajo spreminjanje podatkov po preverjanju informacij, vendar pred izvedbo operacije (TOCTOU – Time-Of-Check-To-Time-Of-Use). Med drugim takšne ranljivosti omogočajo zamenjavo datoteke s simbolno povezavo med zaključkom preverjanja in začetkom operacije.
Pri uporabi pripomočkov cp, mv in rm v sistemskih skriptih, ki se izvajajo s privilegiji root, zamenjava s simbolno povezavo omogoča kopiranje, prepisovanje ali brisanje poljubnih datotek. Na primer, pri rekurzivnem brisanju imenikov je pripomoček rm najprej pregledal vse imenike in jih nato zaporedno izbrisal v obratnem vrstnem redu s klicem funkcije rmdir(). Z zamenjavo nadrejenega imenika s simbolno povezavo takoj po pregledu tega imenika, vendar pred pregledom njegovih podrejenih imenikov, lahko izbrišete kateri koli imenik v sistemu, ko se dnevno izvaja skript cron /etc/cron.daily/apport. Skript, ki se izvaja kot root, rekurzivno izbriše vsebino imenika /var/crash, v katerega lahko pišejo vsi uporabniki v sistemu.
Vir: opennet.ru
